

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="Description" content="scikit-learn: machine learning in Python">

  
  <title>Version 0.19.2 &mdash; scikit-learn 0.22 documentation</title>
  
  <link rel="canonical" href="http://scikit-learn.org/stable/whats_new/v0.19.html" />

  
  <link rel="shortcut icon" href="../_static/favicon.ico"/>
  

  <link rel="stylesheet" href="../_static/css/vendor/bootstrap.min.css" type="text/css" />
  <link rel="stylesheet" href="../_static/gallery.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script> 
</head>
<body>
<nav id="navbar" class="sk-docs-navbar navbar navbar-expand-md navbar-light bg-light py-0">
  <div class="container-fluid sk-docs-container px-0">
      <a class="navbar-brand py-0" href="../index.html">
        <img
          class="sk-brand-img"
          src="../_static/scikit-learn-logo-small.png"
          alt="logo"/>
      </a>
    <button
      id="sk-navbar-toggler"
      class="navbar-toggler"
      type="button"
      data-toggle="collapse"
      data-target="#navbarSupportedContent"
      aria-controls="navbarSupportedContent"
      aria-expanded="false"
      aria-label="Toggle navigation"
    >
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="sk-navbar-collapse collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../install.html">Install</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../user_guide.html">User Guide</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../modules/classes.html">API</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../auto_examples/index.html">Examples</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../getting_started.html">Getting Started</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../tutorial/index.html">Tutorial</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../glossary.html">Glossary</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../developers/index.html">Development</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../faq.html">FAQ</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../related_projects.html">Related packages</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../roadmap.html">Roadmap</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../about.html">About us</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="https://github.com/scikit-learn/scikit-learn">GitHub</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="https://scikit-learn.org/dev/versions.html">Other Versions</a>
        </li>
        <li class="nav-item dropdown nav-more-item-dropdown">
          <a class="sk-nav-link nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">More</a>
          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
              <a class="sk-nav-dropdown-item dropdown-item" href="../getting_started.html">Getting Started</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../tutorial/index.html">Tutorial</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../glossary.html">Glossary</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../developers/index.html">Development</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../faq.html">FAQ</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../related_projects.html">Related packages</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../roadmap.html">Roadmap</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../about.html">About us</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="https://github.com/scikit-learn/scikit-learn">GitHub</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="https://scikit-learn.org/dev/versions.html">Other Versions</a>
          </div>
        </li>
      </ul>
      <div id="searchbox" role="search">
          <div class="searchformwrapper">
          <form class="search" action="../search.html" method="get">
            <input class="sk-search-text-input" type="text" name="q" aria-labelledby="searchlabel" />
            <input class="sk-search-text-btn" type="submit" value="Go" />
          </form>
          </div>
      </div>
    </div>
  </div>
</nav>
<div class="d-flex" id="sk-doc-wrapper">
    <input type="checkbox" name="sk-toggle-checkbox" id="sk-toggle-checkbox">
    <label id="sk-sidemenu-toggle" class="sk-btn-toggle-toc btn sk-btn-primary" for="sk-toggle-checkbox">Toggle Menu</label>
    <div id="sk-sidebar-wrapper" class="border-right">
      <div class="sk-sidebar-toc-wrapper">
        <div class="sk-sidebar-toc-logo">
          <a href="../index.html">
            <img
              class="sk-brand-img"
              src="../_static/scikit-learn-logo-small.png"
              alt="logo"/>
          </a>
        </div>
        <div class="btn-group w-100 mb-2" role="group" aria-label="rellinks">
            <a href="v0.20.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Version 0.20.4">Prev</a><a href="../whats_new.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Release History">Up</a>
            <a href="v0.18.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Version 0.18.2">Next</a>
        </div>
        <div class="alert alert-danger p-1 mb-2" role="alert">
          <p class="text-center mb-0">
          <strong>scikit-learn 0.22</strong><br/>
          <a href="http://scikit-learn.org/dev/versions.html">Other versions</a>
          </p>
        </div>
        <div class="alert alert-warning p-1 mb-2" role="alert">
          <p class="text-center mb-0">
            Please <a class="font-weight-bold" href="../about.html#citing-scikit-learn"><string>cite us</string></a> if you use the software.
          </p>
        </div>
          <div class="sk-sidebar-toc">
            <ul>
<li><a class="reference internal" href="#">Version 0.19.2</a><ul>
<li><a class="reference internal" href="#related-changes">Related changes</a></li>
</ul>
</li>
<li><a class="reference internal" href="#version-0-19-1">Version 0.19.1</a><ul>
<li><a class="reference internal" href="#changelog">Changelog</a><ul>
<li><a class="reference internal" href="#api-changes">API changes</a></li>
<li><a class="reference internal" href="#bug-fixes">Bug fixes</a></li>
<li><a class="reference internal" href="#enhancements">Enhancements</a></li>
</ul>
</li>
<li><a class="reference internal" href="#code-and-documentation-contributors">Code and Documentation Contributors</a></li>
</ul>
</li>
<li><a class="reference internal" href="#version-0-19">Version 0.19</a><ul>
<li><a class="reference internal" href="#highlights">Highlights</a></li>
<li><a class="reference internal" href="#changed-models">Changed models</a></li>
<li><a class="reference internal" href="#id1">Changelog</a><ul>
<li><a class="reference internal" href="#new-features">New features</a></li>
<li><a class="reference internal" href="#id2">Enhancements</a></li>
<li><a class="reference internal" href="#id3">Bug fixes</a></li>
</ul>
</li>
<li><a class="reference internal" href="#api-changes-summary">API changes summary</a></li>
<li><a class="reference internal" href="#id9">Code and Documentation Contributors</a></li>
</ul>
</li>
</ul>

          </div>
      </div>
    </div>
    <div id="sk-page-content-wrapper">
      <div class="sk-page-content container-fluid body px-md-3" role="main">
        
  <div class="section" id="version-0-19-2">
<span id="changes-0-19"></span><h1>Version 0.19.2<a class="headerlink" href="#version-0-19-2" title="Permalink to this headline">¶</a></h1>
<p><strong>July, 2018</strong></p>
<p>This release is exclusively in order to support Python 3.7.</p>
<div class="section" id="related-changes">
<h2>Related changes<a class="headerlink" href="#related-changes" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">n_iter_</span></code> may vary from previous releases in
<a class="reference internal" href="../modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression" title="sklearn.linear_model.LogisticRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LogisticRegression</span></code></a> with <code class="docutils literal notranslate"><span class="pre">solver='lbfgs'</span></code> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.HuberRegressor.html#sklearn.linear_model.HuberRegressor" title="sklearn.linear_model.HuberRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.HuberRegressor</span></code></a>.  For Scipy &lt;= 1.0.0, the optimizer could
perform more than the requested maximum number of iterations. Now both
estimators will report at most <code class="docutils literal notranslate"><span class="pre">max_iter</span></code> iterations even if more were
performed. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/10723">#10723</a> by <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
</ul>
</div>
</div>
<div class="section" id="version-0-19-1">
<h1>Version 0.19.1<a class="headerlink" href="#version-0-19-1" title="Permalink to this headline">¶</a></h1>
<p><strong>October 23, 2017</strong></p>
<p>This is a bug-fix release with some minor documentation improvements and
enhancements to features released in 0.19.0.</p>
<p>Note there may be minor differences in TSNE output in this release (due to
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9623">#9623</a>), in the case where multiple samples have equal distance to some
sample.</p>
<div class="section" id="changelog">
<h2>Changelog<a class="headerlink" href="#changelog" title="Permalink to this headline">¶</a></h2>
<div class="section" id="api-changes">
<h3>API changes<a class="headerlink" href="#api-changes" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>Reverted the addition of <code class="docutils literal notranslate"><span class="pre">metrics.ndcg_score</span></code> and <code class="docutils literal notranslate"><span class="pre">metrics.dcg_score</span></code>
which had been merged into version 0.19.0 by error.  The implementations
were broken and undocumented.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">return_train_score</span></code> which was added to
<a class="reference internal" href="../modules/generated/sklearn.model_selection.GridSearchCV.html#sklearn.model_selection.GridSearchCV" title="sklearn.model_selection.GridSearchCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.GridSearchCV</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.model_selection.RandomizedSearchCV.html#sklearn.model_selection.RandomizedSearchCV" title="sklearn.model_selection.RandomizedSearchCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.RandomizedSearchCV</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.model_selection.cross_validate.html#sklearn.model_selection.cross_validate" title="sklearn.model_selection.cross_validate"><code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.cross_validate</span></code></a> in version 0.19.0 will be changing its
default value from True to False in version 0.21.  We found that calculating
training score could have a great effect on cross validation runtime in some
cases.  Users should explicitly set <code class="docutils literal notranslate"><span class="pre">return_train_score</span></code> to False if
prediction or scoring functions are slow, resulting in a deleterious effect
on CV runtime, or to True if they wish to use the calculated scores.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9677">#9677</a> by <a class="reference external" href="https://github.com/thechargedneutron">Kumar Ashutosh</a> and <a class="reference external" href="https://joelnothman.com/">Joel
Nothman</a>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">correlation_models</span></code> and <code class="docutils literal notranslate"><span class="pre">regression_models</span></code> from the legacy gaussian
processes implementation have been belatedly deprecated. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9717">#9717</a> by
<a class="reference external" href="https://github.com/thechargedneutron">Kumar Ashutosh</a>.</p></li>
</ul>
</div>
<div class="section" id="bug-fixes">
<h3>Bug fixes<a class="headerlink" href="#bug-fixes" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>Avoid integer overflows in <a class="reference internal" href="../modules/generated/sklearn.metrics.matthews_corrcoef.html#sklearn.metrics.matthews_corrcoef" title="sklearn.metrics.matthews_corrcoef"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.matthews_corrcoef</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9693">#9693</a> by <a class="reference external" href="https://github.com/sam-s">Sam Steingold</a>.</p></li>
<li><p>Fixed a bug in the objective function for <a class="reference internal" href="../modules/generated/sklearn.manifold.TSNE.html#sklearn.manifold.TSNE" title="sklearn.manifold.TSNE"><code class="xref py py-class docutils literal notranslate"><span class="pre">manifold.TSNE</span></code></a> (both exact
and with the Barnes-Hut approximation) when <code class="docutils literal notranslate"><span class="pre">n_components</span> <span class="pre">&gt;=</span> <span class="pre">3</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9711">#9711</a> by <a class="reference external" href="https://github.com/goncalo-rodrigues">&#64;goncalo-rodrigues</a>.</p></li>
<li><p>Fix regression in <a class="reference internal" href="../modules/generated/sklearn.model_selection.cross_val_predict.html#sklearn.model_selection.cross_val_predict" title="sklearn.model_selection.cross_val_predict"><code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.cross_val_predict</span></code></a> where it
raised an error with <code class="docutils literal notranslate"><span class="pre">method='predict_proba'</span></code> for some probabilistic
classifiers. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9641">#9641</a> by <a class="reference external" href="https://github.com/jrbourbeau">James Bourbeau</a>.</p></li>
<li><p>Fixed a bug where <a class="reference internal" href="../modules/generated/sklearn.datasets.make_classification.html#sklearn.datasets.make_classification" title="sklearn.datasets.make_classification"><code class="xref py py-func docutils literal notranslate"><span class="pre">datasets.make_classification</span></code></a> modified its input
<code class="docutils literal notranslate"><span class="pre">weights</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9865">#9865</a> by <a class="reference external" href="https://github.com/s4chin">Sachin Kelkar</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.model_selection.StratifiedShuffleSplit.html#sklearn.model_selection.StratifiedShuffleSplit" title="sklearn.model_selection.StratifiedShuffleSplit"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.StratifiedShuffleSplit</span></code></a> now works with multioutput
multiclass or multilabel data with more than 1000 columns.  <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9922">#9922</a> by
<a class="reference external" href="https://github.com/crbrummitt">Charlie Brummitt</a>.</p></li>
<li><p>Fixed a bug with nested and conditional parameter setting, e.g. setting a
pipeline step and its parameter at the same time. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9945">#9945</a> by <a class="reference external" href="https://amueller.github.io/">Andreas
Müller</a> and <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
</ul>
<p>Regressions in 0.19.0 fixed in 0.19.1:</p>
<ul class="simple">
<li><p>Fixed a bug where parallelised prediction in random forests was not
thread-safe and could (rarely) result in arbitrary errors. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9830">#9830</a> by
<a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>Fix regression in <a class="reference internal" href="../modules/generated/sklearn.model_selection.cross_val_predict.html#sklearn.model_selection.cross_val_predict" title="sklearn.model_selection.cross_val_predict"><code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.cross_val_predict</span></code></a> where it no
longer accepted <code class="docutils literal notranslate"><span class="pre">X</span></code> as a list. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9600">#9600</a> by <a class="reference external" href="https://github.com/CoderINusE">Rasul Kerimov</a>.</p></li>
<li><p>Fixed handling of <code class="xref py py-func docutils literal notranslate"><span class="pre">cross_val_predict</span></code> for binary classification with
<code class="docutils literal notranslate"><span class="pre">method='decision_function'</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9593">#9593</a> by <a class="reference external" href="https://github.com/reiinakano">Reiichiro Nakano</a> and core devs.</p></li>
<li><p>Fix regression in <a class="reference internal" href="../modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline" title="sklearn.pipeline.Pipeline"><code class="xref py py-class docutils literal notranslate"><span class="pre">pipeline.Pipeline</span></code></a> where it no longer accepted
<code class="docutils literal notranslate"><span class="pre">steps</span></code> as a tuple. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9604">#9604</a> by <a class="reference external" href="https://github.com/jorisvandenbossche">Joris Van den Bossche</a>.</p></li>
<li><p>Fix bug where <code class="docutils literal notranslate"><span class="pre">n_iter</span></code> was not properly deprecated, leaving <code class="docutils literal notranslate"><span class="pre">n_iter</span></code>
unavailable for interim use in
<a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier" title="sklearn.linear_model.SGDClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDClassifier</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDRegressor.html#sklearn.linear_model.SGDRegressor" title="sklearn.linear_model.SGDRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDRegressor</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.linear_model.PassiveAggressiveClassifier.html#sklearn.linear_model.PassiveAggressiveClassifier" title="sklearn.linear_model.PassiveAggressiveClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.PassiveAggressiveClassifier</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.linear_model.PassiveAggressiveRegressor.html#sklearn.linear_model.PassiveAggressiveRegressor" title="sklearn.linear_model.PassiveAggressiveRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.PassiveAggressiveRegressor</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.Perceptron.html#sklearn.linear_model.Perceptron" title="sklearn.linear_model.Perceptron"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.Perceptron</span></code></a>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9558">#9558</a> by <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Dataset fetchers make sure temporary files are closed before removing them,
which caused errors on Windows. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9847">#9847</a> by <a class="reference external" href="https://github.com/massich">Joan Massich</a>.</p></li>
<li><p>Fixed a regression in <a class="reference internal" href="../modules/generated/sklearn.manifold.TSNE.html#sklearn.manifold.TSNE" title="sklearn.manifold.TSNE"><code class="xref py py-class docutils literal notranslate"><span class="pre">manifold.TSNE</span></code></a> where it no longer supported
metrics other than ‘euclidean’ and ‘precomputed’. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9623">#9623</a> by <a class="reference external" href="https://github.com/oliblum90">Oli
Blum</a>.</p></li>
</ul>
</div>
<div class="section" id="enhancements">
<h3>Enhancements<a class="headerlink" href="#enhancements" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>Our test suite and <code class="xref py py-func docutils literal notranslate"><span class="pre">utils.estimator_checks.check_estimators</span></code> can now be
run without Nose installed. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9697">#9697</a> by <a class="reference external" href="https://github.com/massich">Joan Massich</a>.</p></li>
<li><p>To improve usability of version 0.19’s <a class="reference internal" href="../modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline" title="sklearn.pipeline.Pipeline"><code class="xref py py-class docutils literal notranslate"><span class="pre">pipeline.Pipeline</span></code></a>
caching, <code class="docutils literal notranslate"><span class="pre">memory</span></code> now allows <code class="docutils literal notranslate"><span class="pre">joblib.Memory</span></code> instances.
This make use of the new <a class="reference internal" href="../modules/generated/sklearn.utils.validation.check_memory.html#sklearn.utils.validation.check_memory" title="sklearn.utils.validation.check_memory"><code class="xref py py-func docutils literal notranslate"><span class="pre">utils.validation.check_memory</span></code></a> helper.
issue:<code class="docutils literal notranslate"><span class="pre">9584</span></code> by <a class="reference external" href="https://github.com/thechargedneutron">Kumar Ashutosh</a></p></li>
<li><p>Some fixes to examples: <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9750">#9750</a>, <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9788">#9788</a>, <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9815">#9815</a></p></li>
<li><p>Made a FutureWarning in SGD-based estimators less verbose. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9802">#9802</a> by
<a class="reference external" href="https://github.com/vrishank97">Vrishank Bhardwaj</a>.</p></li>
</ul>
</div>
</div>
<div class="section" id="code-and-documentation-contributors">
<h2>Code and Documentation Contributors<a class="headerlink" href="#code-and-documentation-contributors" title="Permalink to this headline">¶</a></h2>
<p>With thanks to:</p>
<p>Joel Nothman, Loic Esteve, Andreas Mueller, Kumar Ashutosh,
Vrishank Bhardwaj, Hanmin Qin, Rasul Kerimov, James Bourbeau,
Nagarjuna Kumar, Nathaniel Saul, Olivier Grisel, Roman
Yurchak, Reiichiro Nakano, Sachin Kelkar, Sam Steingold,
Yaroslav Halchenko, diegodlh, felix, goncalo-rodrigues,
jkleint, oliblum90, pasbi, Anthony Gitter, Ben Lawson, Charlie
Brummitt, Didi Bar-Zev, Gael Varoquaux, Joan Massich, Joris
Van den Bossche, nielsenmarkus11</p>
</div>
</div>
<div class="section" id="version-0-19">
<h1>Version 0.19<a class="headerlink" href="#version-0-19" title="Permalink to this headline">¶</a></h1>
<p><strong>August 12, 2017</strong></p>
<div class="section" id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Permalink to this headline">¶</a></h2>
<p>We are excited to release a number of great new features including
<a class="reference internal" href="../modules/generated/sklearn.neighbors.LocalOutlierFactor.html#sklearn.neighbors.LocalOutlierFactor" title="sklearn.neighbors.LocalOutlierFactor"><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.LocalOutlierFactor</span></code></a> for anomaly detection,
<a class="reference internal" href="../modules/generated/sklearn.preprocessing.QuantileTransformer.html#sklearn.preprocessing.QuantileTransformer" title="sklearn.preprocessing.QuantileTransformer"><code class="xref py py-class docutils literal notranslate"><span class="pre">preprocessing.QuantileTransformer</span></code></a> for robust feature transformation,
and the <a class="reference internal" href="../modules/generated/sklearn.multioutput.ClassifierChain.html#sklearn.multioutput.ClassifierChain" title="sklearn.multioutput.ClassifierChain"><code class="xref py py-class docutils literal notranslate"><span class="pre">multioutput.ClassifierChain</span></code></a> meta-estimator to simply account
for dependencies between classes in multilabel problems. We have some new
algorithms in existing estimators, such as multiplicative update in
<a class="reference internal" href="../modules/generated/sklearn.decomposition.NMF.html#sklearn.decomposition.NMF" title="sklearn.decomposition.NMF"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.NMF</span></code></a> and multinomial
<a class="reference internal" href="../modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression" title="sklearn.linear_model.LogisticRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LogisticRegression</span></code></a> with L1 loss (use <code class="docutils literal notranslate"><span class="pre">solver='saga'</span></code>).</p>
<p>Cross validation is now able to return the results from multiple metric
evaluations. The new <a class="reference internal" href="../modules/generated/sklearn.model_selection.cross_validate.html#sklearn.model_selection.cross_validate" title="sklearn.model_selection.cross_validate"><code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.cross_validate</span></code></a> can return many
scores on the test data as well as training set performance and timings, and we
have extended the <code class="docutils literal notranslate"><span class="pre">scoring</span></code> and <code class="docutils literal notranslate"><span class="pre">refit</span></code> parameters for grid/randomized
search <a class="reference internal" href="../modules/grid_search.html#multimetric-grid-search"><span class="std std-ref">to handle multiple metrics</span></a>.</p>
<p>You can also learn faster.  For instance, the <a class="reference internal" href="../modules/compose.html#pipeline-cache"><span class="std std-ref">new option to cache
transformations</span></a> in <a class="reference internal" href="../modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline" title="sklearn.pipeline.Pipeline"><code class="xref py py-class docutils literal notranslate"><span class="pre">pipeline.Pipeline</span></code></a> makes grid
search over pipelines including slow transformations much more efficient.  And
you can predict faster: if you’re sure you know what you’re doing, you can turn
off validating that the input is finite using <a class="reference internal" href="../modules/generated/sklearn.config_context.html#sklearn.config_context" title="sklearn.config_context"><code class="xref py py-func docutils literal notranslate"><span class="pre">config_context</span></code></a>.</p>
<p>We’ve made some important fixes too.  We’ve fixed a longstanding implementation
error in <a class="reference internal" href="../modules/generated/sklearn.metrics.average_precision_score.html#sklearn.metrics.average_precision_score" title="sklearn.metrics.average_precision_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.average_precision_score</span></code></a>, so please be cautious with
prior results reported from that function.  A number of errors in the
<a class="reference internal" href="../modules/generated/sklearn.manifold.TSNE.html#sklearn.manifold.TSNE" title="sklearn.manifold.TSNE"><code class="xref py py-class docutils literal notranslate"><span class="pre">manifold.TSNE</span></code></a> implementation have been fixed, particularly in the
default Barnes-Hut approximation.  <a class="reference internal" href="../modules/generated/sklearn.semi_supervised.LabelSpreading.html#sklearn.semi_supervised.LabelSpreading" title="sklearn.semi_supervised.LabelSpreading"><code class="xref py py-class docutils literal notranslate"><span class="pre">semi_supervised.LabelSpreading</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.semi_supervised.LabelPropagation.html#sklearn.semi_supervised.LabelPropagation" title="sklearn.semi_supervised.LabelPropagation"><code class="xref py py-class docutils literal notranslate"><span class="pre">semi_supervised.LabelPropagation</span></code></a> have had substantial fixes.
LabelPropagation was previously broken. LabelSpreading should now correctly
respect its alpha parameter.</p>
</div>
<div class="section" id="changed-models">
<h2>Changed models<a class="headerlink" href="#changed-models" title="Permalink to this headline">¶</a></h2>
<p>The following estimators and functions, when fit with the same data and
parameters, may produce different models from the previous version. This often
occurs due to changes in the modelling logic (bug fixes or enhancements), or in
random sampling procedures.</p>
<ul class="simple">
<li><p><a class="reference internal" href="../modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans" title="sklearn.cluster.KMeans"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.KMeans</span></code></a> with sparse X and initial centroids given (bug fix)</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.cross_decomposition.PLSRegression.html#sklearn.cross_decomposition.PLSRegression" title="sklearn.cross_decomposition.PLSRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">cross_decomposition.PLSRegression</span></code></a>
with <code class="docutils literal notranslate"><span class="pre">scale=True</span></code> (bug fix)</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.ensemble.GradientBoostingClassifier.html#sklearn.ensemble.GradientBoostingClassifier" title="sklearn.ensemble.GradientBoostingClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.GradientBoostingClassifier</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.ensemble.GradientBoostingRegressor.html#sklearn.ensemble.GradientBoostingRegressor" title="sklearn.ensemble.GradientBoostingRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.GradientBoostingRegressor</span></code></a> where <code class="docutils literal notranslate"><span class="pre">min_impurity_split</span></code> is used (bug fix)</p></li>
<li><p>gradient boosting <code class="docutils literal notranslate"><span class="pre">loss='quantile'</span></code> (bug fix)</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.ensemble.IsolationForest.html#sklearn.ensemble.IsolationForest" title="sklearn.ensemble.IsolationForest"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.IsolationForest</span></code></a> (bug fix)</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.feature_selection.SelectFdr.html#sklearn.feature_selection.SelectFdr" title="sklearn.feature_selection.SelectFdr"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_selection.SelectFdr</span></code></a> (bug fix)</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.linear_model.RANSACRegressor.html#sklearn.linear_model.RANSACRegressor" title="sklearn.linear_model.RANSACRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.RANSACRegressor</span></code></a> (bug fix)</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoLars.html#sklearn.linear_model.LassoLars" title="sklearn.linear_model.LassoLars"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LassoLars</span></code></a> (bug fix)</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoLarsIC.html#sklearn.linear_model.LassoLarsIC" title="sklearn.linear_model.LassoLarsIC"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LassoLarsIC</span></code></a> (bug fix)</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.manifold.TSNE.html#sklearn.manifold.TSNE" title="sklearn.manifold.TSNE"><code class="xref py py-class docutils literal notranslate"><span class="pre">manifold.TSNE</span></code></a> (bug fix)</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.neighbors.NearestCentroid.html#sklearn.neighbors.NearestCentroid" title="sklearn.neighbors.NearestCentroid"><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.NearestCentroid</span></code></a> (bug fix)</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.semi_supervised.LabelSpreading.html#sklearn.semi_supervised.LabelSpreading" title="sklearn.semi_supervised.LabelSpreading"><code class="xref py py-class docutils literal notranslate"><span class="pre">semi_supervised.LabelSpreading</span></code></a> (bug fix)</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.semi_supervised.LabelPropagation.html#sklearn.semi_supervised.LabelPropagation" title="sklearn.semi_supervised.LabelPropagation"><code class="xref py py-class docutils literal notranslate"><span class="pre">semi_supervised.LabelPropagation</span></code></a> (bug fix)</p></li>
<li><p>tree based models where <code class="docutils literal notranslate"><span class="pre">min_weight_fraction_leaf</span></code> is used (enhancement)</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.model_selection.StratifiedKFold.html#sklearn.model_selection.StratifiedKFold" title="sklearn.model_selection.StratifiedKFold"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.StratifiedKFold</span></code></a> with <code class="docutils literal notranslate"><span class="pre">shuffle=True</span></code>
(this change, due to <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7823">#7823</a> was not mentioned in the release notes at
the time)</p></li>
</ul>
<p>Details are listed in the changelog below.</p>
<p>(While we are trying to better inform users by providing this information, we
cannot assure that this list is complete.)</p>
</div>
<div class="section" id="id1">
<h2>Changelog<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
<div class="section" id="new-features">
<h3>New features<a class="headerlink" href="#new-features" title="Permalink to this headline">¶</a></h3>
<p>Classifiers and regressors</p>
<ul class="simple">
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.multioutput.ClassifierChain.html#sklearn.multioutput.ClassifierChain" title="sklearn.multioutput.ClassifierChain"><code class="xref py py-class docutils literal notranslate"><span class="pre">multioutput.ClassifierChain</span></code></a> for multi-label
classification. By <a class="reference external" href="https://github.com/adamklec">Adam Kleczewski</a>.</p></li>
<li><p>Added solver <code class="docutils literal notranslate"><span class="pre">'saga'</span></code> that implements the improved version of Stochastic
Average Gradient, in <a class="reference internal" href="../modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression" title="sklearn.linear_model.LogisticRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LogisticRegression</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.Ridge.html#sklearn.linear_model.Ridge" title="sklearn.linear_model.Ridge"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.Ridge</span></code></a>. It allows the use of L1 penalty with
multinomial logistic loss, and behaves marginally better than ‘sag’
during the first epochs of ridge and logistic regression.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8446">#8446</a> by <a class="reference external" href="https://amensch.fr">Arthur Mensch</a>.</p></li>
</ul>
<p>Other estimators</p>
<ul class="simple">
<li><p>Added the <a class="reference internal" href="../modules/generated/sklearn.neighbors.LocalOutlierFactor.html#sklearn.neighbors.LocalOutlierFactor" title="sklearn.neighbors.LocalOutlierFactor"><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.LocalOutlierFactor</span></code></a> class for anomaly
detection based on nearest neighbors.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/5279">#5279</a> by <a class="reference external" href="https://ngoix.github.io/">Nicolas Goix</a> and <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.preprocessing.QuantileTransformer.html#sklearn.preprocessing.QuantileTransformer" title="sklearn.preprocessing.QuantileTransformer"><code class="xref py py-class docutils literal notranslate"><span class="pre">preprocessing.QuantileTransformer</span></code></a> class and
<a class="reference internal" href="../modules/generated/sklearn.preprocessing.quantile_transform.html#sklearn.preprocessing.quantile_transform" title="sklearn.preprocessing.quantile_transform"><code class="xref py py-func docutils literal notranslate"><span class="pre">preprocessing.quantile_transform</span></code></a> function for features
normalization based on quantiles.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8363">#8363</a> by <a class="reference external" href="https://github.com/dengemann">Denis Engemann</a>,
<a class="reference external" href="https://github.com/glemaitre">Guillaume Lemaitre</a>, <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a>, <a class="reference external" href="https://github.com/raghavrv">Raghav RV</a>,
<a class="reference external" href="https://github.com/tguillemot">Thierry Guillemot</a>, and <a class="reference external" href="http://gael-varoquaux.info">Gael Varoquaux</a>.</p></li>
<li><p>The new solver <code class="docutils literal notranslate"><span class="pre">'mu'</span></code> implements a Multiplicate Update in
<a class="reference internal" href="../modules/generated/sklearn.decomposition.NMF.html#sklearn.decomposition.NMF" title="sklearn.decomposition.NMF"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.NMF</span></code></a>, allowing the optimization of all
beta-divergences, including the Frobenius norm, the generalized
Kullback-Leibler divergence and the Itakura-Saito divergence.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/5295">#5295</a> by <a class="reference external" href="https://github.com/TomDLT">Tom Dupre la Tour</a>.</p></li>
</ul>
<p>Model selection and evaluation</p>
<ul class="simple">
<li><p><a class="reference internal" href="../modules/generated/sklearn.model_selection.GridSearchCV.html#sklearn.model_selection.GridSearchCV" title="sklearn.model_selection.GridSearchCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.GridSearchCV</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.model_selection.RandomizedSearchCV.html#sklearn.model_selection.RandomizedSearchCV" title="sklearn.model_selection.RandomizedSearchCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.RandomizedSearchCV</span></code></a> now support simultaneous
evaluation of multiple metrics. Refer to the
<a class="reference internal" href="../modules/grid_search.html#multimetric-grid-search"><span class="std std-ref">Specifying multiple metrics for evaluation</span></a> section of the user guide for more
information. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7388">#7388</a> by <a class="reference external" href="https://github.com/raghavrv">Raghav RV</a></p></li>
<li><p>Added the <a class="reference internal" href="../modules/generated/sklearn.model_selection.cross_validate.html#sklearn.model_selection.cross_validate" title="sklearn.model_selection.cross_validate"><code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.cross_validate</span></code></a> which allows evaluation
of multiple metrics. This function returns a dict with more useful
information from cross-validation such as the train scores, fit times and
score times.
Refer to <a class="reference internal" href="../modules/cross_validation.html#multimetric-cross-validation"><span class="std std-ref">The cross_validate function and multiple metric evaluation</span></a> section of the userguide
for more information. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7388">#7388</a> by <a class="reference external" href="https://github.com/raghavrv">Raghav RV</a></p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.metrics.mean_squared_log_error.html#sklearn.metrics.mean_squared_log_error" title="sklearn.metrics.mean_squared_log_error"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.mean_squared_log_error</span></code></a>, which computes
the mean square error of the logarithmic transformation of targets,
particularly useful for targets with an exponential trend.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7655">#7655</a> by <a class="reference external" href="https://github.com/karandesai-96">Karan Desai</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.metrics.dcg_score.html#sklearn.metrics.dcg_score" title="sklearn.metrics.dcg_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.dcg_score</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.metrics.ndcg_score.html#sklearn.metrics.ndcg_score" title="sklearn.metrics.ndcg_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.ndcg_score</span></code></a>, which
compute Discounted cumulative gain (DCG) and Normalized discounted
cumulative gain (NDCG).
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7739">#7739</a> by <a class="reference external" href="https://github.com/davidgasquez">David Gasquez</a>.</p></li>
<li><p>Added the <a class="reference internal" href="../modules/generated/sklearn.model_selection.RepeatedKFold.html#sklearn.model_selection.RepeatedKFold" title="sklearn.model_selection.RepeatedKFold"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.RepeatedKFold</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.model_selection.RepeatedStratifiedKFold.html#sklearn.model_selection.RepeatedStratifiedKFold" title="sklearn.model_selection.RepeatedStratifiedKFold"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.RepeatedStratifiedKFold</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8120">#8120</a> by <a class="reference external" href="http://neerajgangwar.in">Neeraj Gangwar</a>.</p></li>
</ul>
<p>Miscellaneous</p>
<ul class="simple">
<li><p>Validation that input data contains no NaN or inf can now be suppressed
using <a class="reference internal" href="../modules/generated/sklearn.config_context.html#sklearn.config_context" title="sklearn.config_context"><code class="xref py py-func docutils literal notranslate"><span class="pre">config_context</span></code></a>, at your own risk. This will save on runtime,
and may be particularly useful for prediction time. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7548">#7548</a> by
<a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>Added a test to ensure parameter listing in docstrings match the
function/class signature. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9206">#9206</a> by <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a> and
<a class="reference external" href="https://github.com/raghavrv">Raghav RV</a>.</p></li>
</ul>
</div>
<div class="section" id="id2">
<h3>Enhancements<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
<p>Trees and ensembles</p>
<ul class="simple">
<li><p>The <code class="docutils literal notranslate"><span class="pre">min_weight_fraction_leaf</span></code> constraint in tree construction is now
more efficient, taking a fast path to declare a node a leaf if its weight
is less than 2 * the minimum. Note that the constructed tree will be
different from previous versions where <code class="docutils literal notranslate"><span class="pre">min_weight_fraction_leaf</span></code> is
used. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7441">#7441</a> by <a class="reference external" href="https://github.com/nelson-liu">Nelson Liu</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.ensemble.GradientBoostingClassifier.html#sklearn.ensemble.GradientBoostingClassifier" title="sklearn.ensemble.GradientBoostingClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.GradientBoostingClassifier</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.ensemble.GradientBoostingRegressor.html#sklearn.ensemble.GradientBoostingRegressor" title="sklearn.ensemble.GradientBoostingRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.GradientBoostingRegressor</span></code></a>
now support sparse input for prediction.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/6101">#6101</a> by <a class="reference external" href="https://github.com/olologin">Ibraim Ganiev</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.ensemble.VotingClassifier.html#sklearn.ensemble.VotingClassifier" title="sklearn.ensemble.VotingClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.VotingClassifier</span></code></a> now allows changing estimators by using
<a class="reference internal" href="../modules/generated/sklearn.ensemble.VotingClassifier.html#sklearn.ensemble.VotingClassifier.set_params" title="sklearn.ensemble.VotingClassifier.set_params"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ensemble.VotingClassifier.set_params</span></code></a>. An estimator can also be
removed by setting it to <code class="docutils literal notranslate"><span class="pre">None</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7674">#7674</a> by <a class="reference external" href="https://github.com/yl565">Yichuan Liu</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.tree.export_graphviz.html#sklearn.tree.export_graphviz" title="sklearn.tree.export_graphviz"><code class="xref py py-func docutils literal notranslate"><span class="pre">tree.export_graphviz</span></code></a> now shows configurable number of decimal
places. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8698">#8698</a> by <a class="reference external" href="https://github.com/glemaitre">Guillaume Lemaitre</a>.</p></li>
<li><p>Added <code class="docutils literal notranslate"><span class="pre">flatten_transform</span></code> parameter to <a class="reference internal" href="../modules/generated/sklearn.ensemble.VotingClassifier.html#sklearn.ensemble.VotingClassifier" title="sklearn.ensemble.VotingClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.VotingClassifier</span></code></a>
to change output shape of <code class="docutils literal notranslate"><span class="pre">transform</span></code> method to 2 dimensional.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7794">#7794</a> by <a class="reference external" href="https://github.com/olologin">Ibraim Ganiev</a> and
<a class="reference external" href="https://github.com/herilalaina">Herilalaina Rakotoarison</a>.</p></li>
</ul>
<p>Linear, kernelized and related models</p>
<ul class="simple">
<li><p><a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier" title="sklearn.linear_model.SGDClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDClassifier</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDRegressor.html#sklearn.linear_model.SGDRegressor" title="sklearn.linear_model.SGDRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDRegressor</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.linear_model.PassiveAggressiveClassifier.html#sklearn.linear_model.PassiveAggressiveClassifier" title="sklearn.linear_model.PassiveAggressiveClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.PassiveAggressiveClassifier</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.linear_model.PassiveAggressiveRegressor.html#sklearn.linear_model.PassiveAggressiveRegressor" title="sklearn.linear_model.PassiveAggressiveRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.PassiveAggressiveRegressor</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.Perceptron.html#sklearn.linear_model.Perceptron" title="sklearn.linear_model.Perceptron"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.Perceptron</span></code></a> now expose <code class="docutils literal notranslate"><span class="pre">max_iter</span></code> and
<code class="docutils literal notranslate"><span class="pre">tol</span></code> parameters, to handle convergence more precisely.
<code class="docutils literal notranslate"><span class="pre">n_iter</span></code> parameter is deprecated, and the fitted estimator exposes
a <code class="docutils literal notranslate"><span class="pre">n_iter_</span></code> attribute, with actual number of iterations before
convergence. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/5036">#5036</a> by <a class="reference external" href="https://github.com/TomDLT">Tom Dupre la Tour</a>.</p></li>
<li><p>Added <code class="docutils literal notranslate"><span class="pre">average</span></code> parameter to perform weight averaging in
<a class="reference internal" href="../modules/generated/sklearn.linear_model.PassiveAggressiveClassifier.html#sklearn.linear_model.PassiveAggressiveClassifier" title="sklearn.linear_model.PassiveAggressiveClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.PassiveAggressiveClassifier</span></code></a>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/4939">#4939</a>
by <a class="reference external" href="https://github.com/aesuli">Andrea Esuli</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.linear_model.RANSACRegressor.html#sklearn.linear_model.RANSACRegressor" title="sklearn.linear_model.RANSACRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.RANSACRegressor</span></code></a> no longer throws an error
when calling <code class="docutils literal notranslate"><span class="pre">fit</span></code> if no inliers are found in its first iteration.
Furthermore, causes of skipped iterations are tracked in newly added
attributes, <code class="docutils literal notranslate"><span class="pre">n_skips_*</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7914">#7914</a> by <a class="reference external" href="https://github.com/mthorrell">Michael Horrell</a>.</p></li>
<li><p>In <a class="reference internal" href="../modules/generated/sklearn.gaussian_process.GaussianProcessRegressor.html#sklearn.gaussian_process.GaussianProcessRegressor" title="sklearn.gaussian_process.GaussianProcessRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">gaussian_process.GaussianProcessRegressor</span></code></a>, method <code class="docutils literal notranslate"><span class="pre">predict</span></code>
is a lot faster with <code class="docutils literal notranslate"><span class="pre">return_std=True</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8591">#8591</a> by
<a class="reference external" href="https://github.com/hbertrand">Hadrien Bertrand</a>.</p></li>
<li><p>Added <code class="docutils literal notranslate"><span class="pre">return_std</span></code> to <code class="docutils literal notranslate"><span class="pre">predict</span></code> method of
<a class="reference internal" href="../modules/generated/sklearn.linear_model.ARDRegression.html#sklearn.linear_model.ARDRegression" title="sklearn.linear_model.ARDRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.ARDRegression</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.BayesianRidge.html#sklearn.linear_model.BayesianRidge" title="sklearn.linear_model.BayesianRidge"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.BayesianRidge</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7838">#7838</a> by <a class="reference external" href="https://github.com/sergeyf">Sergey Feldman</a>.</p></li>
<li><p>Memory usage enhancements: Prevent cast from float32 to float64 in:
<a class="reference internal" href="../modules/generated/sklearn.linear_model.MultiTaskElasticNet.html#sklearn.linear_model.MultiTaskElasticNet" title="sklearn.linear_model.MultiTaskElasticNet"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.MultiTaskElasticNet</span></code></a>;
<a class="reference internal" href="../modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression" title="sklearn.linear_model.LogisticRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LogisticRegression</span></code></a> when using newton-cg solver; and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.Ridge.html#sklearn.linear_model.Ridge" title="sklearn.linear_model.Ridge"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.Ridge</span></code></a> when using svd, sparse_cg, cholesky or lsqr
solvers. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8835">#8835</a>, <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8061">#8061</a> by <a class="reference external" href="https://github.com/massich">Joan Massich</a> and <a class="reference external" href="https://github.com/ncordier">Nicolas
Cordier</a> and <a class="reference external" href="https://github.com/tguillemot">Thierry Guillemot</a>.</p></li>
</ul>
<p>Other predictors</p>
<ul class="simple">
<li><p>Custom metrics for the <code class="xref py py-mod docutils literal notranslate"><span class="pre">neighbors</span></code> binary trees now have
fewer constraints: they must take two 1d-arrays and return a float.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/6288">#6288</a> by <a class="reference external" href="https://staff.washington.edu/jakevdp/">Jake Vanderplas</a>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">algorithm='auto</span></code> in <code class="xref py py-mod docutils literal notranslate"><span class="pre">neighbors</span></code> estimators now chooses the most
appropriate algorithm for all input types and metrics. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9145">#9145</a> by
<a class="reference external" href="https://github.com/herilalaina">Herilalaina Rakotoarison</a> and <a class="reference external" href="https://github.com/preddy5">Reddy Chinthala</a>.</p></li>
</ul>
<p>Decomposition, manifold learning and clustering</p>
<ul class="simple">
<li><p><a class="reference internal" href="../modules/generated/sklearn.cluster.MiniBatchKMeans.html#sklearn.cluster.MiniBatchKMeans" title="sklearn.cluster.MiniBatchKMeans"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.MiniBatchKMeans</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans" title="sklearn.cluster.KMeans"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.KMeans</span></code></a>
now use significantly less memory when assigning data points to their
nearest cluster center. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7721">#7721</a> by <a class="reference external" href="https://github.com/Erotemic">Jon Crall</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.decomposition.PCA.html#sklearn.decomposition.PCA" title="sklearn.decomposition.PCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.PCA</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.decomposition.IncrementalPCA.html#sklearn.decomposition.IncrementalPCA" title="sklearn.decomposition.IncrementalPCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.IncrementalPCA</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.decomposition.TruncatedSVD.html#sklearn.decomposition.TruncatedSVD" title="sklearn.decomposition.TruncatedSVD"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.TruncatedSVD</span></code></a> now expose the singular values
from the underlying SVD. They are stored in the attribute
<code class="docutils literal notranslate"><span class="pre">singular_values_</span></code>, like in <a class="reference internal" href="../modules/generated/sklearn.decomposition.IncrementalPCA.html#sklearn.decomposition.IncrementalPCA" title="sklearn.decomposition.IncrementalPCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.IncrementalPCA</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7685">#7685</a> by <a class="reference external" href="https://github.com/tomlof">Tommy Löfstedt</a></p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.decomposition.NMF.html#sklearn.decomposition.NMF" title="sklearn.decomposition.NMF"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.NMF</span></code></a> now faster when <code class="docutils literal notranslate"><span class="pre">beta_loss=0</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9277">#9277</a> by <a class="reference external" href="https://github.com/hongkahjun">&#64;hongkahjun</a>.</p></li>
<li><p>Memory improvements for method <code class="docutils literal notranslate"><span class="pre">barnes_hut</span></code> in <a class="reference internal" href="../modules/generated/sklearn.manifold.TSNE.html#sklearn.manifold.TSNE" title="sklearn.manifold.TSNE"><code class="xref py py-class docutils literal notranslate"><span class="pre">manifold.TSNE</span></code></a>
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7089">#7089</a> by <a class="reference external" href="https://github.com/tomMoral">Thomas Moreau</a> and <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a>.</p></li>
<li><p>Optimization schedule improvements for Barnes-Hut <a class="reference internal" href="../modules/generated/sklearn.manifold.TSNE.html#sklearn.manifold.TSNE" title="sklearn.manifold.TSNE"><code class="xref py py-class docutils literal notranslate"><span class="pre">manifold.TSNE</span></code></a>
so the results are closer to the one from the reference implementation
<a class="reference external" href="https://github.com/lvdmaaten/bhtsne">lvdmaaten/bhtsne</a> by <a class="reference external" href="https://github.com/tomMoral">Thomas
Moreau</a> and <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a>.</p></li>
<li><p>Memory usage enhancements: Prevent cast from float32 to float64 in
<a class="reference internal" href="../modules/generated/sklearn.decomposition.PCA.html#sklearn.decomposition.PCA" title="sklearn.decomposition.PCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.PCA</span></code></a> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">decomposition.randomized_svd_low_rank</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9067">#9067</a> by <a class="reference external" href="https://github.com/raghavrv">Raghav RV</a>.</p></li>
</ul>
<p>Preprocessing and feature selection</p>
<ul class="simple">
<li><p>Added <code class="docutils literal notranslate"><span class="pre">norm_order</span></code> parameter to <a class="reference internal" href="../modules/generated/sklearn.feature_selection.SelectFromModel.html#sklearn.feature_selection.SelectFromModel" title="sklearn.feature_selection.SelectFromModel"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_selection.SelectFromModel</span></code></a>
to enable selection of the norm order when <code class="docutils literal notranslate"><span class="pre">coef_</span></code> is more than 1D.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/6181">#6181</a> by <a class="reference external" href="https://github.com/antoinewdg">Antoine Wendlinger</a>.</p></li>
<li><p>Added ability to use sparse matrices in <a class="reference internal" href="../modules/generated/sklearn.feature_selection.f_regression.html#sklearn.feature_selection.f_regression" title="sklearn.feature_selection.f_regression"><code class="xref py py-func docutils literal notranslate"><span class="pre">feature_selection.f_regression</span></code></a>
with <code class="docutils literal notranslate"><span class="pre">center=True</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8065">#8065</a> by <a class="reference external" href="https://github.com/acadiansith">Daniel LeJeune</a>.</p></li>
<li><p>Small performance improvement to n-gram creation in
<code class="xref py py-mod docutils literal notranslate"><span class="pre">feature_extraction.text</span></code> by binding methods for loops and
special-casing unigrams. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7567">#7567</a> by <a class="reference external" href="https://github.com/jtdoepke">Jaye Doepke</a></p></li>
<li><p>Relax assumption on the data for the
<a class="reference internal" href="../modules/generated/sklearn.kernel_approximation.SkewedChi2Sampler.html#sklearn.kernel_approximation.SkewedChi2Sampler" title="sklearn.kernel_approximation.SkewedChi2Sampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">kernel_approximation.SkewedChi2Sampler</span></code></a>. Since the Skewed-Chi2
kernel is defined on the open interval <span class="math notranslate nohighlight">\((-skewedness; +\infty)^d\)</span>,
the transform function should not check whether <code class="docutils literal notranslate"><span class="pre">X</span> <span class="pre">&lt;</span> <span class="pre">0</span></code> but whether <code class="docutils literal notranslate"><span class="pre">X</span> <span class="pre">&lt;</span>
<span class="pre">-self.skewedness</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7573">#7573</a> by <a class="reference external" href="https://github.com/RomainBrault">Romain Brault</a>.</p></li>
<li><p>Made default kernel parameters kernel-dependent in
<a class="reference internal" href="../modules/generated/sklearn.kernel_approximation.Nystroem.html#sklearn.kernel_approximation.Nystroem" title="sklearn.kernel_approximation.Nystroem"><code class="xref py py-class docutils literal notranslate"><span class="pre">kernel_approximation.Nystroem</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/5229">#5229</a> by <a class="reference external" href="https://github.com/mth4saurabh">Saurabh Bansod</a> and <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
</ul>
<p>Model evaluation and meta-estimators</p>
<ul class="simple">
<li><p><a class="reference internal" href="../modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline" title="sklearn.pipeline.Pipeline"><code class="xref py py-class docutils literal notranslate"><span class="pre">pipeline.Pipeline</span></code></a> is now able to cache transformers
within a pipeline by using the <code class="docutils literal notranslate"><span class="pre">memory</span></code> constructor parameter.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7990">#7990</a> by <a class="reference external" href="https://github.com/glemaitre">Guillaume Lemaitre</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline" title="sklearn.pipeline.Pipeline"><code class="xref py py-class docutils literal notranslate"><span class="pre">pipeline.Pipeline</span></code></a> steps can now be accessed as attributes of its
<code class="docutils literal notranslate"><span class="pre">named_steps</span></code> attribute. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8586">#8586</a> by <a class="reference external" href="https://github.com/herilalaina">Herilalaina
Rakotoarison</a>.</p></li>
<li><p>Added <code class="docutils literal notranslate"><span class="pre">sample_weight</span></code> parameter to <a class="reference internal" href="../modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline.score" title="sklearn.pipeline.Pipeline.score"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pipeline.Pipeline.score</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7723">#7723</a> by <a class="reference external" href="https://github.com/kmike">Mikhail Korobov</a>.</p></li>
<li><p>Added ability to set <code class="docutils literal notranslate"><span class="pre">n_jobs</span></code> parameter to <a class="reference internal" href="../modules/generated/sklearn.pipeline.make_union.html#sklearn.pipeline.make_union" title="sklearn.pipeline.make_union"><code class="xref py py-func docutils literal notranslate"><span class="pre">pipeline.make_union</span></code></a>.
A <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> will be raised for any other kwargs. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8028">#8028</a>
by <a class="reference external" href="https://github.com/alexandercbooth">Alexander Booth</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.model_selection.GridSearchCV.html#sklearn.model_selection.GridSearchCV" title="sklearn.model_selection.GridSearchCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.GridSearchCV</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.model_selection.RandomizedSearchCV.html#sklearn.model_selection.RandomizedSearchCV" title="sklearn.model_selection.RandomizedSearchCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.RandomizedSearchCV</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.model_selection.cross_val_score.html#sklearn.model_selection.cross_val_score" title="sklearn.model_selection.cross_val_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.cross_val_score</span></code></a> now allow estimators with callable
kernels which were previously prohibited.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8005">#8005</a> by <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a> .</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.model_selection.cross_val_predict.html#sklearn.model_selection.cross_val_predict" title="sklearn.model_selection.cross_val_predict"><code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.cross_val_predict</span></code></a> now returns output of the
correct shape for all values of the argument <code class="docutils literal notranslate"><span class="pre">method</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7863">#7863</a> by <a class="reference external" href="https://github.com/dalmia">Aman Dalmia</a>.</p></li>
<li><p>Added <code class="docutils literal notranslate"><span class="pre">shuffle</span></code> and <code class="docutils literal notranslate"><span class="pre">random_state</span></code> parameters to shuffle training
data before taking prefixes of it based on training sizes in
<a class="reference internal" href="../modules/generated/sklearn.model_selection.learning_curve.html#sklearn.model_selection.learning_curve" title="sklearn.model_selection.learning_curve"><code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.learning_curve</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7506">#7506</a> by <a class="reference external" href="https://github.com/NarineK">Narine Kokhlikyan</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.model_selection.StratifiedShuffleSplit.html#sklearn.model_selection.StratifiedShuffleSplit" title="sklearn.model_selection.StratifiedShuffleSplit"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.StratifiedShuffleSplit</span></code></a> now works with multioutput
multiclass (or multilabel) data.  <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9044">#9044</a> by <a class="reference external" href="https://vene.ro/">Vlad Niculae</a>.</p></li>
<li><p>Speed improvements to <a class="reference internal" href="../modules/generated/sklearn.model_selection.StratifiedShuffleSplit.html#sklearn.model_selection.StratifiedShuffleSplit" title="sklearn.model_selection.StratifiedShuffleSplit"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.StratifiedShuffleSplit</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/5991">#5991</a> by <a class="reference external" href="https://github.com/arthurmensch">Arthur Mensch</a> and <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">shuffle</span></code> parameter to <a class="reference internal" href="../modules/generated/sklearn.model_selection.train_test_split.html#sklearn.model_selection.train_test_split" title="sklearn.model_selection.train_test_split"><code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.train_test_split</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8845">#8845</a> by  <a class="reference external" href="https://github.com/themrmax">themrmax</a></p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.multioutput.MultiOutputRegressor.html#sklearn.multioutput.MultiOutputRegressor" title="sklearn.multioutput.MultiOutputRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">multioutput.MultiOutputRegressor</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.multioutput.MultiOutputClassifier.html#sklearn.multioutput.MultiOutputClassifier" title="sklearn.multioutput.MultiOutputClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">multioutput.MultiOutputClassifier</span></code></a>
now support online learning using <code class="docutils literal notranslate"><span class="pre">partial_fit</span></code>.
:issue: <code class="docutils literal notranslate"><span class="pre">8053</span></code> by <a class="reference external" href="https://github.com/yupbank">Peng Yu</a>.</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">max_train_size</span></code> parameter to <a class="reference internal" href="../modules/generated/sklearn.model_selection.TimeSeriesSplit.html#sklearn.model_selection.TimeSeriesSplit" title="sklearn.model_selection.TimeSeriesSplit"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.TimeSeriesSplit</span></code></a>
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8282">#8282</a> by <a class="reference external" href="https://github.com/dalmia">Aman Dalmia</a>.</p></li>
<li><p>More clustering metrics are now available through <a class="reference internal" href="../modules/generated/sklearn.metrics.get_scorer.html#sklearn.metrics.get_scorer" title="sklearn.metrics.get_scorer"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.get_scorer</span></code></a>
and <code class="docutils literal notranslate"><span class="pre">scoring</span></code> parameters. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8117">#8117</a> by <a class="reference external" href="https://github.com/raghavrv">Raghav RV</a>.</p></li>
<li><p>A scorer based on <a class="reference internal" href="../modules/generated/sklearn.metrics.explained_variance_score.html#sklearn.metrics.explained_variance_score" title="sklearn.metrics.explained_variance_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.explained_variance_score</span></code></a> is also available.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9259">#9259</a> by <a class="reference external" href="https://github.com/qinhanmin2014">Hanmin Qin</a>.</p></li>
</ul>
<p>Metrics</p>
<ul class="simple">
<li><p><a class="reference internal" href="../modules/generated/sklearn.metrics.matthews_corrcoef.html#sklearn.metrics.matthews_corrcoef" title="sklearn.metrics.matthews_corrcoef"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.matthews_corrcoef</span></code></a> now support multiclass classification.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8094">#8094</a> by <a class="reference external" href="https://github.com/Erotemic">Jon Crall</a>.</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">sample_weight</span></code> parameter to <a class="reference internal" href="../modules/generated/sklearn.metrics.cohen_kappa_score.html#sklearn.metrics.cohen_kappa_score" title="sklearn.metrics.cohen_kappa_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.cohen_kappa_score</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8335">#8335</a> by <a class="reference external" href="https://github.com/vpoughon">Victor Poughon</a>.</p></li>
</ul>
<p>Miscellaneous</p>
<ul class="simple">
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">utils.check_estimator</span></code> now attempts to ensure that methods
transform, predict, etc.  do not set attributes on the estimator.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7533">#7533</a> by <a class="reference external" href="https://github.com/kiote">Ekaterina Krivich</a>.</p></li>
<li><p>Added type checking to the <code class="docutils literal notranslate"><span class="pre">accept_sparse</span></code> parameter in
<code class="xref py py-mod docutils literal notranslate"><span class="pre">utils.validation</span></code> methods. This parameter now accepts only boolean,
string, or list/tuple of strings. <code class="docutils literal notranslate"><span class="pre">accept_sparse=None</span></code> is deprecated and
should be replaced by <code class="docutils literal notranslate"><span class="pre">accept_sparse=False</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7880">#7880</a> by <a class="reference external" href="https://github.com/jkarno">Josh Karnofsky</a>.</p></li>
<li><p>Make it possible to load a chunk of an svmlight formatted file by
passing a range of bytes to <a class="reference internal" href="../modules/generated/sklearn.datasets.load_svmlight_file.html#sklearn.datasets.load_svmlight_file" title="sklearn.datasets.load_svmlight_file"><code class="xref py py-func docutils literal notranslate"><span class="pre">datasets.load_svmlight_file</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/935">#935</a> by <a class="reference external" href="https://github.com/ogrisel">Olivier Grisel</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.dummy.DummyClassifier.html#sklearn.dummy.DummyClassifier" title="sklearn.dummy.DummyClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">dummy.DummyClassifier</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.dummy.DummyRegressor.html#sklearn.dummy.DummyRegressor" title="sklearn.dummy.DummyRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">dummy.DummyRegressor</span></code></a>
now accept non-finite features. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8931">#8931</a> by <a class="reference external" href="https://github.com/Attractadore">&#64;Attractadore</a>.</p></li>
</ul>
</div>
<div class="section" id="id3">
<h3>Bug fixes<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h3>
<p>Trees and ensembles</p>
<ul class="simple">
<li><p>Fixed a memory leak in trees when using trees with <code class="docutils literal notranslate"><span class="pre">criterion='mae'</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8002">#8002</a> by <a class="reference external" href="https://github.com/raghavrv">Raghav RV</a>.</p></li>
<li><p>Fixed a bug where <a class="reference internal" href="../modules/generated/sklearn.ensemble.IsolationForest.html#sklearn.ensemble.IsolationForest" title="sklearn.ensemble.IsolationForest"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.IsolationForest</span></code></a> uses an
an incorrect formula for the average path length
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8549">#8549</a> by <a class="reference external" href="https://github.com/PTRWang">Peter Wang</a>.</p></li>
<li><p>Fixed a bug where <a class="reference internal" href="../modules/generated/sklearn.ensemble.AdaBoostClassifier.html#sklearn.ensemble.AdaBoostClassifier" title="sklearn.ensemble.AdaBoostClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.AdaBoostClassifier</span></code></a> throws
<code class="docutils literal notranslate"><span class="pre">ZeroDivisionError</span></code> while fitting data with single class labels.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7501">#7501</a> by <a class="reference external" href="https://github.com/dokato">Dominik Krzeminski</a>.</p></li>
<li><p>Fixed a bug in <a class="reference internal" href="../modules/generated/sklearn.ensemble.GradientBoostingClassifier.html#sklearn.ensemble.GradientBoostingClassifier" title="sklearn.ensemble.GradientBoostingClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.GradientBoostingClassifier</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.ensemble.GradientBoostingRegressor.html#sklearn.ensemble.GradientBoostingRegressor" title="sklearn.ensemble.GradientBoostingRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.GradientBoostingRegressor</span></code></a> where a float being compared
to <code class="docutils literal notranslate"><span class="pre">0.0</span></code> using <code class="docutils literal notranslate"><span class="pre">==</span></code> caused a divide by zero error. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7970">#7970</a> by
<a class="reference external" href="https://github.com/chenhe95">He Chen</a>.</p></li>
<li><p>Fix a bug where <a class="reference internal" href="../modules/generated/sklearn.ensemble.GradientBoostingClassifier.html#sklearn.ensemble.GradientBoostingClassifier" title="sklearn.ensemble.GradientBoostingClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.GradientBoostingClassifier</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.ensemble.GradientBoostingRegressor.html#sklearn.ensemble.GradientBoostingRegressor" title="sklearn.ensemble.GradientBoostingRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.GradientBoostingRegressor</span></code></a> ignored the
<code class="docutils literal notranslate"><span class="pre">min_impurity_split</span></code> parameter.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8006">#8006</a> by <a class="reference external" href="https://github.com/sebp">Sebastian Pölsterl</a>.</p></li>
<li><p>Fixed <code class="docutils literal notranslate"><span class="pre">oob_score</span></code> in <a class="reference internal" href="../modules/generated/sklearn.ensemble.BaggingClassifier.html#sklearn.ensemble.BaggingClassifier" title="sklearn.ensemble.BaggingClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.BaggingClassifier</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8936">#8936</a> by <a class="reference external" href="https://github.com/mlewis1729">Michael Lewis</a></p></li>
<li><p>Fixed excessive memory usage in prediction for random forests estimators.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8672">#8672</a> by <a class="reference external" href="https://github.com/mikebenfield">Mike Benfield</a>.</p></li>
<li><p>Fixed a bug where <code class="docutils literal notranslate"><span class="pre">sample_weight</span></code> as a list broke random forests in Python 2
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8068">#8068</a> by <a class="reference external" href="https://github.com/xor">&#64;xor</a>.</p></li>
<li><p>Fixed a bug where <a class="reference internal" href="../modules/generated/sklearn.ensemble.IsolationForest.html#sklearn.ensemble.IsolationForest" title="sklearn.ensemble.IsolationForest"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.IsolationForest</span></code></a> fails when
<code class="docutils literal notranslate"><span class="pre">max_features</span></code> is less than 1.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/5732">#5732</a> by <a class="reference external" href="https://github.com/IshankGulati">Ishank Gulati</a>.</p></li>
<li><p>Fix a bug where gradient boosting with <code class="docutils literal notranslate"><span class="pre">loss='quantile'</span></code> computed
negative errors for negative values of <code class="docutils literal notranslate"><span class="pre">ytrue</span> <span class="pre">-</span> <span class="pre">ypred</span></code> leading to wrong
values when calling <code class="docutils literal notranslate"><span class="pre">__call__</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8087">#8087</a> by <a class="reference external" href="https://github.com/AlexisMignon">Alexis Mignon</a></p></li>
<li><p>Fix a bug where <a class="reference internal" href="../modules/generated/sklearn.ensemble.VotingClassifier.html#sklearn.ensemble.VotingClassifier" title="sklearn.ensemble.VotingClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.VotingClassifier</span></code></a> raises an error
when a numpy array is passed in for weights. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7983">#7983</a> by
<a class="reference external" href="https://github.com/vincentpham1991">Vincent Pham</a>.</p></li>
<li><p>Fixed a bug where <a class="reference internal" href="../modules/generated/sklearn.tree.export_graphviz.html#sklearn.tree.export_graphviz" title="sklearn.tree.export_graphviz"><code class="xref py py-func docutils literal notranslate"><span class="pre">tree.export_graphviz</span></code></a> raised an error
when the length of features_names does not match n_features in the decision
tree. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8512">#8512</a> by <a class="reference external" href="https://github.com/aikinogard">Li Li</a>.</p></li>
</ul>
<p>Linear, kernelized and related models</p>
<ul class="simple">
<li><p>Fixed a bug where <a class="reference internal" href="../modules/generated/sklearn.linear_model.RANSACRegressor.html#sklearn.linear_model.RANSACRegressor.fit" title="sklearn.linear_model.RANSACRegressor.fit"><code class="xref py py-func docutils literal notranslate"><span class="pre">linear_model.RANSACRegressor.fit</span></code></a> may run until
<code class="docutils literal notranslate"><span class="pre">max_iter</span></code> if it finds a large inlier group early. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8251">#8251</a> by
<a class="reference external" href="https://github.com/aivision2020">&#64;aivision2020</a>.</p></li>
<li><p>Fixed a bug where <a class="reference internal" href="../modules/generated/sklearn.naive_bayes.MultinomialNB.html#sklearn.naive_bayes.MultinomialNB" title="sklearn.naive_bayes.MultinomialNB"><code class="xref py py-class docutils literal notranslate"><span class="pre">naive_bayes.MultinomialNB</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.naive_bayes.BernoulliNB.html#sklearn.naive_bayes.BernoulliNB" title="sklearn.naive_bayes.BernoulliNB"><code class="xref py py-class docutils literal notranslate"><span class="pre">naive_bayes.BernoulliNB</span></code></a> failed when <code class="docutils literal notranslate"><span class="pre">alpha=0</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/5814">#5814</a> by
<a class="reference external" href="https://github.com/yl565">Yichuan Liu</a> and <a class="reference external" href="https://github.com/herilalaina">Herilalaina Rakotoarison</a>.</p></li>
<li><p>Fixed a bug where <a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoLars.html#sklearn.linear_model.LassoLars" title="sklearn.linear_model.LassoLars"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LassoLars</span></code></a> does not give
the same result as the LassoLars implementation available
in R (lars library). <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7849">#7849</a> by <a class="reference external" href="https://github.com/jmontoyam">Jair Montoya Martinez</a>.</p></li>
<li><p>Fixed a bug in <code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.RandomizedLasso</span></code>,
<a class="reference internal" href="../modules/generated/sklearn.linear_model.Lars.html#sklearn.linear_model.Lars" title="sklearn.linear_model.Lars"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.Lars</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoLars.html#sklearn.linear_model.LassoLars" title="sklearn.linear_model.LassoLars"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LassoLars</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.linear_model.LarsCV.html#sklearn.linear_model.LarsCV" title="sklearn.linear_model.LarsCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LarsCV</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoLarsCV.html#sklearn.linear_model.LassoLarsCV" title="sklearn.linear_model.LassoLarsCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LassoLarsCV</span></code></a>,
where the parameter <code class="docutils literal notranslate"><span class="pre">precompute</span></code> was not used consistently across
classes, and some values proposed in the docstring could raise errors.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/5359">#5359</a> by <a class="reference external" href="https://github.com/TomDLT">Tom Dupre la Tour</a>.</p></li>
<li><p>Fix inconsistent results between <a class="reference internal" href="../modules/generated/sklearn.linear_model.RidgeCV.html#sklearn.linear_model.RidgeCV" title="sklearn.linear_model.RidgeCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.RidgeCV</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.Ridge.html#sklearn.linear_model.Ridge" title="sklearn.linear_model.Ridge"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.Ridge</span></code></a> when using <code class="docutils literal notranslate"><span class="pre">normalize=True</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9302">#9302</a>
by <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>.</p></li>
<li><p>Fix a bug where <a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoLars.html#sklearn.linear_model.LassoLars.fit" title="sklearn.linear_model.LassoLars.fit"><code class="xref py py-func docutils literal notranslate"><span class="pre">linear_model.LassoLars.fit</span></code></a> sometimes
left <code class="docutils literal notranslate"><span class="pre">coef_</span></code> as a list, rather than an ndarray.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8160">#8160</a> by <a class="reference external" href="https://github.com/perimosocordiae">CJ Carey</a>.</p></li>
<li><p>Fix <a class="reference internal" href="../modules/generated/sklearn.linear_model.BayesianRidge.html#sklearn.linear_model.BayesianRidge.fit" title="sklearn.linear_model.BayesianRidge.fit"><code class="xref py py-func docutils literal notranslate"><span class="pre">linear_model.BayesianRidge.fit</span></code></a> to return
ridge parameter <code class="docutils literal notranslate"><span class="pre">alpha_</span></code> and <code class="docutils literal notranslate"><span class="pre">lambda_</span></code> consistent with calculated
coefficients <code class="docutils literal notranslate"><span class="pre">coef_</span></code> and <code class="docutils literal notranslate"><span class="pre">intercept_</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8224">#8224</a> by <a class="reference external" href="https://github.com/gedeck">Peter Gedeck</a>.</p></li>
<li><p>Fixed a bug in <a class="reference internal" href="../modules/generated/sklearn.svm.OneClassSVM.html#sklearn.svm.OneClassSVM" title="sklearn.svm.OneClassSVM"><code class="xref py py-class docutils literal notranslate"><span class="pre">svm.OneClassSVM</span></code></a> where it returned floats instead of
integer classes. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8676">#8676</a> by <a class="reference external" href="https://github.com/VathsalaAchar">Vathsala Achar</a>.</p></li>
<li><p>Fix AIC/BIC criterion computation in <a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoLarsIC.html#sklearn.linear_model.LassoLarsIC" title="sklearn.linear_model.LassoLarsIC"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LassoLarsIC</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9022">#9022</a> by <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a> and <a class="reference external" href="https://github.com/mehmetbasbug">Mehmet Basbug</a>.</p></li>
<li><p>Fixed a memory leak in our LibLinear implementation. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9024">#9024</a> by
<a class="reference external" href="https://github.com/superbobry">Sergei Lebedev</a></p></li>
<li><p>Fix bug where stratified CV splitters did not work with
<a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoCV.html#sklearn.linear_model.LassoCV" title="sklearn.linear_model.LassoCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LassoCV</span></code></a>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8973">#8973</a> by
<a class="reference external" href="https://github.com/paulochf">Paulo Haddad</a>.</p></li>
<li><p>Fixed a bug in <a class="reference internal" href="../modules/generated/sklearn.gaussian_process.GaussianProcessRegressor.html#sklearn.gaussian_process.GaussianProcessRegressor" title="sklearn.gaussian_process.GaussianProcessRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">gaussian_process.GaussianProcessRegressor</span></code></a>
when the standard deviation and covariance predicted without fit
would fail with a unmeaningful error by default.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/6573">#6573</a> by <a class="reference external" href="https://github.com/qmaruf">Quazi Marufur Rahman</a> and
<a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
</ul>
<p>Other predictors</p>
<ul class="simple">
<li><p>Fix <code class="xref py py-class docutils literal notranslate"><span class="pre">semi_supervised.BaseLabelPropagation</span></code> to correctly implement
<code class="docutils literal notranslate"><span class="pre">LabelPropagation</span></code> and <code class="docutils literal notranslate"><span class="pre">LabelSpreading</span></code> as done in the referenced
papers. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9239">#9239</a>
by <a class="reference external" href="https://github.com/boechat107">Andre Ambrosio Boechat</a>, <a class="reference external" href="https://github.com/musically-ut">Utkarsh Upadhyay</a>, and <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
</ul>
<p>Decomposition, manifold learning and clustering</p>
<ul class="simple">
<li><p>Fixed the implementation of <a class="reference internal" href="../modules/generated/sklearn.manifold.TSNE.html#sklearn.manifold.TSNE" title="sklearn.manifold.TSNE"><code class="xref py py-class docutils literal notranslate"><span class="pre">manifold.TSNE</span></code></a>:</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">early_exageration</span></code> parameter had no effect and is now used for the
first 250 optimization iterations.</p></li>
<li><p>Fixed the <code class="docutils literal notranslate"><span class="pre">AssertionError:</span> <span class="pre">Tree</span> <span class="pre">consistency</span> <span class="pre">failed</span></code> exception
reported in <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8992">#8992</a>.</p></li>
<li><p>Improve the learning schedule to match the one from the reference
implementation <a class="reference external" href="https://github.com/lvdmaaten/bhtsne">lvdmaaten/bhtsne</a>.
by <a class="reference external" href="https://github.com/tomMoral">Thomas Moreau</a> and <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a>.</p></li>
<li><p>Fix a bug in <a class="reference internal" href="../modules/generated/sklearn.decomposition.LatentDirichletAllocation.html#sklearn.decomposition.LatentDirichletAllocation" title="sklearn.decomposition.LatentDirichletAllocation"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.LatentDirichletAllocation</span></code></a>
where the <code class="docutils literal notranslate"><span class="pre">perplexity</span></code> method was returning incorrect results because
the <code class="docutils literal notranslate"><span class="pre">transform</span></code> method returns normalized document topic distributions
as of version 0.18. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7954">#7954</a> by <a class="reference external" href="https://github.com/garyForeman">Gary Foreman</a>.</p></li>
<li><p>Fix output shape and bugs with n_jobs &gt; 1 in
<a class="reference internal" href="../modules/generated/sklearn.decomposition.SparseCoder.html#sklearn.decomposition.SparseCoder" title="sklearn.decomposition.SparseCoder"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.SparseCoder</span></code></a> transform and
<a class="reference internal" href="../modules/generated/sklearn.decomposition.sparse_encode.html#sklearn.decomposition.sparse_encode" title="sklearn.decomposition.sparse_encode"><code class="xref py py-func docutils literal notranslate"><span class="pre">decomposition.sparse_encode</span></code></a>
for one-dimensional data and one component.
This also impacts the output shape of <a class="reference internal" href="../modules/generated/sklearn.decomposition.DictionaryLearning.html#sklearn.decomposition.DictionaryLearning" title="sklearn.decomposition.DictionaryLearning"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.DictionaryLearning</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8086">#8086</a> by <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Fixed the implementation of <code class="docutils literal notranslate"><span class="pre">explained_variance_</span></code>
in <a class="reference internal" href="../modules/generated/sklearn.decomposition.PCA.html#sklearn.decomposition.PCA" title="sklearn.decomposition.PCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.PCA</span></code></a>,
<code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.RandomizedPCA</span></code> and
<a class="reference internal" href="../modules/generated/sklearn.decomposition.IncrementalPCA.html#sklearn.decomposition.IncrementalPCA" title="sklearn.decomposition.IncrementalPCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.IncrementalPCA</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9105">#9105</a> by <a class="reference external" href="https://github.com/qinhanmin2014">Hanmin Qin</a>.</p></li>
<li><p>Fixed the implementation of <code class="docutils literal notranslate"><span class="pre">noise_variance_</span></code> in <a class="reference internal" href="../modules/generated/sklearn.decomposition.PCA.html#sklearn.decomposition.PCA" title="sklearn.decomposition.PCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.PCA</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9108">#9108</a> by <a class="reference external" href="https://github.com/qinhanmin2014">Hanmin Qin</a>.</p></li>
<li><p>Fixed a bug where <a class="reference internal" href="../modules/generated/sklearn.cluster.DBSCAN.html#sklearn.cluster.DBSCAN" title="sklearn.cluster.DBSCAN"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.DBSCAN</span></code></a> gives incorrect
result when input is a precomputed sparse matrix with initial
rows all zero. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8306">#8306</a> by <a class="reference external" href="https://github.com/Akshay0724">Akshay Gupta</a></p></li>
<li><p>Fix a bug regarding fitting <a class="reference internal" href="../modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans" title="sklearn.cluster.KMeans"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.KMeans</span></code></a> with a sparse
array X and initial centroids, where X’s means were unnecessarily being
subtracted from the centroids. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7872">#7872</a> by <a class="reference external" href="https://github.com/jkarno">Josh Karnofsky</a>.</p></li>
<li><p>Fixes to the input validation in <a class="reference internal" href="../modules/generated/sklearn.covariance.EllipticEnvelope.html#sklearn.covariance.EllipticEnvelope" title="sklearn.covariance.EllipticEnvelope"><code class="xref py py-class docutils literal notranslate"><span class="pre">covariance.EllipticEnvelope</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8086">#8086</a> by <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Fixed a bug in <a class="reference internal" href="../modules/generated/sklearn.covariance.MinCovDet.html#sklearn.covariance.MinCovDet" title="sklearn.covariance.MinCovDet"><code class="xref py py-class docutils literal notranslate"><span class="pre">covariance.MinCovDet</span></code></a> where inputting data
that produced a singular covariance matrix would cause the helper method
<code class="docutils literal notranslate"><span class="pre">_c_step</span></code> to throw an exception.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/3367">#3367</a> by <a class="reference external" href="https://github.com/ThatGeoGuy">Jeremy Steward</a></p></li>
<li><p>Fixed a bug in <a class="reference internal" href="../modules/generated/sklearn.manifold.TSNE.html#sklearn.manifold.TSNE" title="sklearn.manifold.TSNE"><code class="xref py py-class docutils literal notranslate"><span class="pre">manifold.TSNE</span></code></a> affecting convergence of the
gradient descent. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8768">#8768</a> by <a class="reference external" href="https://github.com/deto">David DeTomaso</a>.</p></li>
<li><p>Fixed a bug in <a class="reference internal" href="../modules/generated/sklearn.manifold.TSNE.html#sklearn.manifold.TSNE" title="sklearn.manifold.TSNE"><code class="xref py py-class docutils literal notranslate"><span class="pre">manifold.TSNE</span></code></a> where it stored the incorrect
<code class="docutils literal notranslate"><span class="pre">kl_divergence_</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/6507">#6507</a> by <a class="reference external" href="https://github.com/ssaeger">Sebastian Saeger</a>.</p></li>
<li><p>Fixed improper scaling in <a class="reference internal" href="../modules/generated/sklearn.cross_decomposition.PLSRegression.html#sklearn.cross_decomposition.PLSRegression" title="sklearn.cross_decomposition.PLSRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">cross_decomposition.PLSRegression</span></code></a>
with <code class="docutils literal notranslate"><span class="pre">scale=True</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7819">#7819</a> by <a class="reference external" href="https://github.com/jayzed82">jayzed82</a>.</p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.bicluster.SpectralCoclustering</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.bicluster.SpectralBiclustering</span></code> <code class="docutils literal notranslate"><span class="pre">fit</span></code> method conforms
with API by accepting <code class="docutils literal notranslate"><span class="pre">y</span></code> and returning the object.  <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/6126">#6126</a>,
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7814">#7814</a> by <a class="reference external" href="https://github.com/ldirer">Laurent Direr</a> and <a class="reference external" href="https://github.com/maniteja123">Maniteja
Nandana</a>.</p></li>
<li><p>Fix bug where <code class="xref py py-mod docutils literal notranslate"><span class="pre">mixture</span></code> <code class="docutils literal notranslate"><span class="pre">sample</span></code> methods did not return as many
samples as requested. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7702">#7702</a> by <a class="reference external" href="https://github.com/ljwolf">Levi John Wolf</a>.</p></li>
<li><p>Fixed the shrinkage implementation in <a class="reference internal" href="../modules/generated/sklearn.neighbors.NearestCentroid.html#sklearn.neighbors.NearestCentroid" title="sklearn.neighbors.NearestCentroid"><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.NearestCentroid</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9219">#9219</a> by <a class="reference external" href="https://github.com/qinhanmin2014">Hanmin Qin</a>.</p></li>
</ul>
<p>Preprocessing and feature selection</p>
<ul class="simple">
<li><p>For sparse matrices, <a class="reference internal" href="../modules/generated/sklearn.preprocessing.normalize.html#sklearn.preprocessing.normalize" title="sklearn.preprocessing.normalize"><code class="xref py py-func docutils literal notranslate"><span class="pre">preprocessing.normalize</span></code></a> with <code class="docutils literal notranslate"><span class="pre">return_norm=True</span></code>
will now raise a <code class="docutils literal notranslate"><span class="pre">NotImplementedError</span></code> with ‘l1’ or ‘l2’ norm and with
norm ‘max’ the norms returned will be the same as for dense matrices.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7771">#7771</a> by <a class="reference external" href="https://github.com/luang008">Ang Lu</a>.</p></li>
<li><p>Fix a bug where <a class="reference internal" href="../modules/generated/sklearn.feature_selection.SelectFdr.html#sklearn.feature_selection.SelectFdr" title="sklearn.feature_selection.SelectFdr"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_selection.SelectFdr</span></code></a> did not
exactly implement Benjamini-Hochberg procedure. It formerly may have
selected fewer features than it should.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7490">#7490</a> by <a class="reference external" href="https://github.com/mpjlu">Peng Meng</a>.</p></li>
<li><p>Fixed a bug where <code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.RandomizedLasso</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.RandomizedLogisticRegression</span></code> breaks for
sparse input. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8259">#8259</a> by <a class="reference external" href="https://github.com/dalmia">Aman Dalmia</a>.</p></li>
<li><p>Fix a bug where <a class="reference internal" href="../modules/generated/sklearn.feature_extraction.FeatureHasher.html#sklearn.feature_extraction.FeatureHasher" title="sklearn.feature_extraction.FeatureHasher"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_extraction.FeatureHasher</span></code></a>
mandatorily applied a sparse random projection to the hashed features,
preventing the use of
<a class="reference internal" href="../modules/generated/sklearn.feature_extraction.text.HashingVectorizer.html#sklearn.feature_extraction.text.HashingVectorizer" title="sklearn.feature_extraction.text.HashingVectorizer"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_extraction.text.HashingVectorizer</span></code></a> in a
pipeline with  <a class="reference internal" href="../modules/generated/sklearn.feature_extraction.text.TfidfTransformer.html#sklearn.feature_extraction.text.TfidfTransformer" title="sklearn.feature_extraction.text.TfidfTransformer"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_extraction.text.TfidfTransformer</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7565">#7565</a> by <a class="reference external" href="https://github.com/rth">Roman Yurchak</a>.</p></li>
<li><p>Fix a bug where <a class="reference internal" href="../modules/generated/sklearn.feature_selection.mutual_info_regression.html#sklearn.feature_selection.mutual_info_regression" title="sklearn.feature_selection.mutual_info_regression"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_selection.mutual_info_regression</span></code></a> did not
correctly use <code class="docutils literal notranslate"><span class="pre">n_neighbors</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8181">#8181</a> by <a class="reference external" href="https://github.com/glemaitre">Guillaume Lemaitre</a>.</p></li>
</ul>
<p>Model evaluation and meta-estimators</p>
<ul class="simple">
<li><p>Fixed a bug where <code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.BaseSearchCV.inverse_transform</span></code>
returns <code class="docutils literal notranslate"><span class="pre">self.best_estimator_.transform()</span></code> instead of
<code class="docutils literal notranslate"><span class="pre">self.best_estimator_.inverse_transform()</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8344">#8344</a> by <a class="reference external" href="https://github.com/Akshay0724">Akshay Gupta</a> and <a class="reference external" href="https://github.com/MrMjauh">Rasmus Eriksson</a>.</p></li>
<li><p>Added <code class="docutils literal notranslate"><span class="pre">classes_</span></code> attribute to <a class="reference internal" href="../modules/generated/sklearn.model_selection.GridSearchCV.html#sklearn.model_selection.GridSearchCV" title="sklearn.model_selection.GridSearchCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.GridSearchCV</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.model_selection.RandomizedSearchCV.html#sklearn.model_selection.RandomizedSearchCV" title="sklearn.model_selection.RandomizedSearchCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.RandomizedSearchCV</span></code></a>,  <code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.GridSearchCV</span></code>,
and  <code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.RandomizedSearchCV</span></code> that matches the <code class="docutils literal notranslate"><span class="pre">classes_</span></code>
attribute of <code class="docutils literal notranslate"><span class="pre">best_estimator_</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7661">#7661</a> and <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8295">#8295</a>
by <a class="reference external" href="https://github.com/abatula">Alyssa Batula</a>, <a class="reference external" href="https://github.com/unautre">Dylan Werner-Meier</a>,
and <a class="reference external" href="https://github.com/stephen-hoover">Stephen Hoover</a>.</p></li>
<li><p>Fixed a bug where <a class="reference internal" href="../modules/generated/sklearn.model_selection.validation_curve.html#sklearn.model_selection.validation_curve" title="sklearn.model_selection.validation_curve"><code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.validation_curve</span></code></a>
reused the same estimator for each parameter value.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7365">#7365</a> by <a class="reference external" href="https://github.com/Sundrique">Aleksandr Sandrovskii</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.model_selection.permutation_test_score.html#sklearn.model_selection.permutation_test_score" title="sklearn.model_selection.permutation_test_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.permutation_test_score</span></code></a> now works with Pandas
types. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/5697">#5697</a> by <a class="reference external" href="https://github.com/equialgo">Stijn Tonk</a>.</p></li>
<li><p>Several fixes to input validation in
<a class="reference internal" href="../modules/generated/sklearn.multiclass.OutputCodeClassifier.html#sklearn.multiclass.OutputCodeClassifier" title="sklearn.multiclass.OutputCodeClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiclass.OutputCodeClassifier</span></code></a>
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8086">#8086</a> by <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.multiclass.OneVsOneClassifier.html#sklearn.multiclass.OneVsOneClassifier" title="sklearn.multiclass.OneVsOneClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiclass.OneVsOneClassifier</span></code></a>’s <code class="docutils literal notranslate"><span class="pre">partial_fit</span></code> now ensures all
classes are provided up-front. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/6250">#6250</a> by
<a class="reference external" href="https://github.com/kaichogami">Asish Panda</a>.</p></li>
<li><p>Fix <a class="reference internal" href="../modules/generated/sklearn.multioutput.MultiOutputClassifier.html#sklearn.multioutput.MultiOutputClassifier.predict_proba" title="sklearn.multioutput.MultiOutputClassifier.predict_proba"><code class="xref py py-func docutils literal notranslate"><span class="pre">multioutput.MultiOutputClassifier.predict_proba</span></code></a> to return a
list of 2d arrays, rather than a 3d array. In the case where different
target columns had different numbers of classes, a <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> would be
raised on trying to stack matrices with different dimensions.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8093">#8093</a> by <a class="reference external" href="https://github.com/pjbull">Peter Bull</a>.</p></li>
<li><p>Cross validation now works with Pandas datatypes that that have a
read-only index. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9507">#9507</a> by <a class="reference external" href="https://github.com/lesteve">Loic Esteve</a>.</p></li>
</ul>
<p>Metrics</p>
<ul class="simple">
<li><p><a class="reference internal" href="../modules/generated/sklearn.metrics.average_precision_score.html#sklearn.metrics.average_precision_score" title="sklearn.metrics.average_precision_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.average_precision_score</span></code></a> no longer linearly
interpolates between operating points, and instead weighs precisions
by the change in recall since the last operating point, as per the
<a class="reference external" href="https://en.wikipedia.org/wiki/Average_precision">Wikipedia entry</a>.
(<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/pull/7356">#7356</a>). By
<a class="reference external" href="https://github.com/ndingwall">Nick Dingwall</a> and <a class="reference external" href="http://gael-varoquaux.info">Gael Varoquaux</a>.</p></li>
<li><p>Fix a bug in <code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.classification._check_targets</span></code>
which would return <code class="docutils literal notranslate"><span class="pre">'binary'</span></code> if <code class="docutils literal notranslate"><span class="pre">y_true</span></code> and <code class="docutils literal notranslate"><span class="pre">y_pred</span></code> were
both <code class="docutils literal notranslate"><span class="pre">'binary'</span></code> but the union of <code class="docutils literal notranslate"><span class="pre">y_true</span></code> and <code class="docutils literal notranslate"><span class="pre">y_pred</span></code> was
<code class="docutils literal notranslate"><span class="pre">'multiclass'</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8377">#8377</a> by <a class="reference external" href="https://github.com/lesteve">Loic Esteve</a>.</p></li>
<li><p>Fixed an integer overflow bug in <a class="reference internal" href="../modules/generated/sklearn.metrics.confusion_matrix.html#sklearn.metrics.confusion_matrix" title="sklearn.metrics.confusion_matrix"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.confusion_matrix</span></code></a> and
hence <a class="reference internal" href="../modules/generated/sklearn.metrics.cohen_kappa_score.html#sklearn.metrics.cohen_kappa_score" title="sklearn.metrics.cohen_kappa_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.cohen_kappa_score</span></code></a>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8354">#8354</a>, <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7929">#7929</a>
by <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a> and <a class="reference external" href="https://github.com/Erotemic">Jon Crall</a>.</p></li>
<li><p>Fixed passing of <code class="docutils literal notranslate"><span class="pre">gamma</span></code> parameter to the <code class="docutils literal notranslate"><span class="pre">chi2</span></code> kernel in
<a class="reference internal" href="../modules/generated/sklearn.metrics.pairwise.pairwise_kernels.html#sklearn.metrics.pairwise.pairwise_kernels" title="sklearn.metrics.pairwise.pairwise_kernels"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.pairwise.pairwise_kernels</span></code></a> <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/5211">#5211</a> by
<a class="reference external" href="https://github.com/nrhine1">Nick Rhinehart</a>,
<a class="reference external" href="https://github.com/mth4saurabh">Saurabh Bansod</a> and <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
</ul>
<p>Miscellaneous</p>
<ul class="simple">
<li><p>Fixed a bug when <a class="reference internal" href="../modules/generated/sklearn.datasets.make_classification.html#sklearn.datasets.make_classification" title="sklearn.datasets.make_classification"><code class="xref py py-func docutils literal notranslate"><span class="pre">datasets.make_classification</span></code></a> fails
when generating more than 30 features. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8159">#8159</a> by
<a class="reference external" href="https://github.com/herilalaina">Herilalaina Rakotoarison</a>.</p></li>
<li><p>Fixed a bug where <a class="reference internal" href="../modules/generated/sklearn.datasets.make_moons.html#sklearn.datasets.make_moons" title="sklearn.datasets.make_moons"><code class="xref py py-func docutils literal notranslate"><span class="pre">datasets.make_moons</span></code></a> gives an
incorrect result when <code class="docutils literal notranslate"><span class="pre">n_samples</span></code> is odd.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8198">#8198</a> by <a class="reference external" href="https://github.com/levy5674">Josh Levy</a>.</p></li>
<li><p>Some <code class="docutils literal notranslate"><span class="pre">fetch_</span></code> functions in <code class="xref py py-mod docutils literal notranslate"><span class="pre">datasets</span></code> were ignoring the
<code class="docutils literal notranslate"><span class="pre">download_if_missing</span></code> keyword. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7944">#7944</a> by <a class="reference external" href="https://github.com/rgommers">Ralf Gommers</a>.</p></li>
<li><p>Fix estimators to accept a <code class="docutils literal notranslate"><span class="pre">sample_weight</span></code> parameter of type
<code class="docutils literal notranslate"><span class="pre">pandas.Series</span></code> in their <code class="docutils literal notranslate"><span class="pre">fit</span></code> function. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7825">#7825</a> by
<a class="reference external" href="https://github.com/kchen17">Kathleen Chen</a>.</p></li>
<li><p>Fix a bug in cases where <code class="docutils literal notranslate"><span class="pre">numpy.cumsum</span></code> may be numerically unstable,
raising an exception if instability is identified. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7376">#7376</a> and
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7331">#7331</a> by <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a> and <a class="reference external" href="https://github.com/yangarbiter">&#64;yangarbiter</a>.</p></li>
<li><p>Fix a bug where <code class="xref py py-meth docutils literal notranslate"><span class="pre">base.BaseEstimator.__getstate__</span></code>
obstructed pickling customizations of child-classes, when used in a
multiple inheritance context.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8316">#8316</a> by <a class="reference external" href="https://github.com/HolgerPeters">Holger Peters</a>.</p></li>
<li><p>Update Sphinx-Gallery from 0.1.4 to 0.1.7 for resolving links in
documentation build with Sphinx&gt;1.5 <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8010">#8010</a>, <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7986">#7986</a> by
<a class="reference external" href="https://github.com/Titan-C">Oscar Najera</a></p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">data_home</span></code> parameter to <a class="reference internal" href="../modules/generated/sklearn.datasets.fetch_kddcup99.html#sklearn.datasets.fetch_kddcup99" title="sklearn.datasets.fetch_kddcup99"><code class="xref py py-func docutils literal notranslate"><span class="pre">sklearn.datasets.fetch_kddcup99</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9289">#9289</a> by <a class="reference external" href="https://github.com/lesteve">Loic Esteve</a>.</p></li>
<li><p>Fix dataset loaders using Python 3 version of makedirs to also work in
Python 2. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9284">#9284</a> by <a class="reference external" href="https://github.com/SebastinSanty">Sebastin Santy</a>.</p></li>
<li><p>Several minor issues were fixed with thanks to the alerts of
[lgtm.com](<a class="reference external" href="https://lgtm.com/">https://lgtm.com/</a>). <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9278">#9278</a> by <a class="reference external" href="https://github.com/jhelie">Jean Helie</a>,
among others.</p></li>
</ul>
</div>
</div>
<div class="section" id="api-changes-summary">
<h2>API changes summary<a class="headerlink" href="#api-changes-summary" title="Permalink to this headline">¶</a></h2>
<p>Trees and ensembles</p>
<ul class="simple">
<li><p>Gradient boosting base models are no longer estimators. By <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>All tree based estimators now accept a <code class="docutils literal notranslate"><span class="pre">min_impurity_decrease</span></code>
parameter in lieu of the <code class="docutils literal notranslate"><span class="pre">min_impurity_split</span></code>, which is now deprecated.
The <code class="docutils literal notranslate"><span class="pre">min_impurity_decrease</span></code> helps stop splitting the nodes in which
the weighted impurity decrease from splitting is no longer at least
<code class="docutils literal notranslate"><span class="pre">min_impurity_decrease</span></code>. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8449">#8449</a> by <a class="reference external" href="https://github.com/raghavrv">Raghav RV</a>.</p></li>
</ul>
<p>Linear, kernelized and related models</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">n_iter</span></code> parameter is deprecated in <a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier" title="sklearn.linear_model.SGDClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDClassifier</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDRegressor.html#sklearn.linear_model.SGDRegressor" title="sklearn.linear_model.SGDRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDRegressor</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.linear_model.PassiveAggressiveClassifier.html#sklearn.linear_model.PassiveAggressiveClassifier" title="sklearn.linear_model.PassiveAggressiveClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.PassiveAggressiveClassifier</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.linear_model.PassiveAggressiveRegressor.html#sklearn.linear_model.PassiveAggressiveRegressor" title="sklearn.linear_model.PassiveAggressiveRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.PassiveAggressiveRegressor</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.Perceptron.html#sklearn.linear_model.Perceptron" title="sklearn.linear_model.Perceptron"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.Perceptron</span></code></a>. By <a class="reference external" href="https://github.com/TomDLT">Tom Dupre la Tour</a>.</p></li>
</ul>
<p>Other predictors</p>
<ul class="simple">
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.LSHForest</span></code> has been deprecated and will be
removed in 0.21 due to poor performance.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9078">#9078</a> by <a class="reference external" href="https://github.com/ldirer">Laurent Direr</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.neighbors.NearestCentroid.html#sklearn.neighbors.NearestCentroid" title="sklearn.neighbors.NearestCentroid"><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.NearestCentroid</span></code></a> no longer purports to support
<code class="docutils literal notranslate"><span class="pre">metric='precomputed'</span></code> which now raises an error. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8515">#8515</a> by
<a class="reference external" href="https://github.com/sergulaydore">Sergul Aydore</a>.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">alpha</span></code> parameter of <a class="reference internal" href="../modules/generated/sklearn.semi_supervised.LabelPropagation.html#sklearn.semi_supervised.LabelPropagation" title="sklearn.semi_supervised.LabelPropagation"><code class="xref py py-class docutils literal notranslate"><span class="pre">semi_supervised.LabelPropagation</span></code></a> now
has no effect and is deprecated to be removed in 0.21. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9239">#9239</a>
by <a class="reference external" href="https://github.com/boechat107">Andre Ambrosio Boechat</a>, <a class="reference external" href="https://github.com/musically-ut">Utkarsh Upadhyay</a>, and <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
</ul>
<p>Decomposition, manifold learning and clustering</p>
<ul class="simple">
<li><p>Deprecate the <code class="docutils literal notranslate"><span class="pre">doc_topic_distr</span></code> argument of the <code class="docutils literal notranslate"><span class="pre">perplexity</span></code> method
in <a class="reference internal" href="../modules/generated/sklearn.decomposition.LatentDirichletAllocation.html#sklearn.decomposition.LatentDirichletAllocation" title="sklearn.decomposition.LatentDirichletAllocation"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.LatentDirichletAllocation</span></code></a> because the
user no longer has access to the unnormalized document topic distribution
needed for the perplexity calculation. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7954">#7954</a> by
<a class="reference external" href="https://github.com/garyForeman">Gary Foreman</a>.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">n_topics</span></code> parameter of <a class="reference internal" href="../modules/generated/sklearn.decomposition.LatentDirichletAllocation.html#sklearn.decomposition.LatentDirichletAllocation" title="sklearn.decomposition.LatentDirichletAllocation"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.LatentDirichletAllocation</span></code></a>
has been renamed to <code class="docutils literal notranslate"><span class="pre">n_components</span></code> and will be removed in version 0.21.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8922">#8922</a> by <a class="reference external" href="https://github.com/Attractadore">&#64;Attractadore</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.decomposition.SparsePCA.html#sklearn.decomposition.SparsePCA.transform" title="sklearn.decomposition.SparsePCA.transform"><code class="xref py py-meth docutils literal notranslate"><span class="pre">decomposition.SparsePCA.transform</span></code></a>’s <code class="docutils literal notranslate"><span class="pre">ridge_alpha</span></code> parameter is
deprecated in preference for class parameter.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8137">#8137</a> by <a class="reference external" href="https://github.com/naoyak">Naoya Kanai</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.cluster.DBSCAN.html#sklearn.cluster.DBSCAN" title="sklearn.cluster.DBSCAN"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.DBSCAN</span></code></a> now has a <code class="docutils literal notranslate"><span class="pre">metric_params</span></code> parameter.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8139">#8139</a> by <a class="reference external" href="https://github.com/naoyak">Naoya Kanai</a>.</p></li>
</ul>
<p>Preprocessing and feature selection</p>
<ul class="simple">
<li><p><a class="reference internal" href="../modules/generated/sklearn.feature_selection.SelectFromModel.html#sklearn.feature_selection.SelectFromModel" title="sklearn.feature_selection.SelectFromModel"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_selection.SelectFromModel</span></code></a> now has a <code class="docutils literal notranslate"><span class="pre">partial_fit</span></code>
method only if the underlying estimator does. By <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.feature_selection.SelectFromModel.html#sklearn.feature_selection.SelectFromModel" title="sklearn.feature_selection.SelectFromModel"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_selection.SelectFromModel</span></code></a> now validates the <code class="docutils literal notranslate"><span class="pre">threshold</span></code>
parameter and sets the <code class="docutils literal notranslate"><span class="pre">threshold_</span></code> attribute during the call to
<code class="docutils literal notranslate"><span class="pre">fit</span></code>, and no longer during the call to <code class="docutils literal notranslate"><span class="pre">transform`</span></code>. By <a class="reference external" href="https://amueller.github.io/">Andreas
Müller</a>.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">non_negative</span></code> parameter in <a class="reference internal" href="../modules/generated/sklearn.feature_extraction.FeatureHasher.html#sklearn.feature_extraction.FeatureHasher" title="sklearn.feature_extraction.FeatureHasher"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_extraction.FeatureHasher</span></code></a>
has been deprecated, and replaced with a more principled alternative,
<code class="docutils literal notranslate"><span class="pre">alternate_sign</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7565">#7565</a> by <a class="reference external" href="https://github.com/rth">Roman Yurchak</a>.</p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.RandomizedLogisticRegression</span></code>,
and <code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.RandomizedLasso</span></code> have been deprecated and will
be removed in version 0.21.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8995">#8995</a> by <a class="reference external" href="https://github.com/sentient07">Ramana.S</a>.</p></li>
</ul>
<p>Model evaluation and meta-estimators</p>
<ul class="simple">
<li><p>Deprecate the <code class="docutils literal notranslate"><span class="pre">fit_params</span></code> constructor input to the
<a class="reference internal" href="../modules/generated/sklearn.model_selection.GridSearchCV.html#sklearn.model_selection.GridSearchCV" title="sklearn.model_selection.GridSearchCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.GridSearchCV</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.model_selection.RandomizedSearchCV.html#sklearn.model_selection.RandomizedSearchCV" title="sklearn.model_selection.RandomizedSearchCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">model_selection.RandomizedSearchCV</span></code></a> in favor
of passing keyword parameters to the <code class="docutils literal notranslate"><span class="pre">fit</span></code> methods
of those classes. Data-dependent parameters needed for model
training should be passed as keyword arguments to <code class="docutils literal notranslate"><span class="pre">fit</span></code>,
and conforming to this convention will allow the hyperparameter
selection classes to be used with tools such as
<a class="reference internal" href="../modules/generated/sklearn.model_selection.cross_val_predict.html#sklearn.model_selection.cross_val_predict" title="sklearn.model_selection.cross_val_predict"><code class="xref py py-func docutils literal notranslate"><span class="pre">model_selection.cross_val_predict</span></code></a>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/2879">#2879</a> by <a class="reference external" href="https://github.com/stephen-hoover">Stephen Hoover</a>.</p></li>
<li><p>In version 0.21, the default behavior of splitters that use the
<code class="docutils literal notranslate"><span class="pre">test_size</span></code> and <code class="docutils literal notranslate"><span class="pre">train_size</span></code> parameter will change, such that
specifying <code class="docutils literal notranslate"><span class="pre">train_size</span></code> alone will cause <code class="docutils literal notranslate"><span class="pre">test_size</span></code> to be the
remainder. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7459">#7459</a> by <a class="reference external" href="https://github.com/nelson-liu">Nelson Liu</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.multiclass.OneVsRestClassifier.html#sklearn.multiclass.OneVsRestClassifier" title="sklearn.multiclass.OneVsRestClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiclass.OneVsRestClassifier</span></code></a> now has <code class="docutils literal notranslate"><span class="pre">partial_fit</span></code>,
<code class="docutils literal notranslate"><span class="pre">decision_function</span></code> and <code class="docutils literal notranslate"><span class="pre">predict_proba</span></code> methods only when the
underlying estimator does.  <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7812">#7812</a> by <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a> and
<a class="reference external" href="https://github.com/kmike">Mikhail Korobov</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.multiclass.OneVsRestClassifier.html#sklearn.multiclass.OneVsRestClassifier" title="sklearn.multiclass.OneVsRestClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiclass.OneVsRestClassifier</span></code></a> now has a <code class="docutils literal notranslate"><span class="pre">partial_fit</span></code> method
only if the underlying estimator does.  By <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">decision_function</span></code> output shape for binary classification in
<a class="reference internal" href="../modules/generated/sklearn.multiclass.OneVsRestClassifier.html#sklearn.multiclass.OneVsRestClassifier" title="sklearn.multiclass.OneVsRestClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiclass.OneVsRestClassifier</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.multiclass.OneVsOneClassifier.html#sklearn.multiclass.OneVsOneClassifier" title="sklearn.multiclass.OneVsOneClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiclass.OneVsOneClassifier</span></code></a> is now <code class="docutils literal notranslate"><span class="pre">(n_samples,)</span></code> to conform
to scikit-learn conventions. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9100">#9100</a> by <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>The <a class="reference internal" href="../modules/generated/sklearn.multioutput.MultiOutputClassifier.html#sklearn.multioutput.MultiOutputClassifier.predict_proba" title="sklearn.multioutput.MultiOutputClassifier.predict_proba"><code class="xref py py-func docutils literal notranslate"><span class="pre">multioutput.MultiOutputClassifier.predict_proba</span></code></a>
function used to return a 3d array (<code class="docutils literal notranslate"><span class="pre">n_samples</span></code>, <code class="docutils literal notranslate"><span class="pre">n_classes</span></code>,
<code class="docutils literal notranslate"><span class="pre">n_outputs</span></code>). In the case where different target columns had different
numbers of classes, a <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> would be raised on trying to stack
matrices with different dimensions. This function now returns a list of
arrays where the length of the list is <code class="docutils literal notranslate"><span class="pre">n_outputs</span></code>, and each array is
(<code class="docutils literal notranslate"><span class="pre">n_samples</span></code>, <code class="docutils literal notranslate"><span class="pre">n_classes</span></code>) for that particular output.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8093">#8093</a> by <a class="reference external" href="https://github.com/pjbull">Peter Bull</a>.</p></li>
<li><p>Replace attribute <code class="docutils literal notranslate"><span class="pre">named_steps</span></code> <code class="docutils literal notranslate"><span class="pre">dict</span></code> to <code class="xref py py-class docutils literal notranslate"><span class="pre">utils.Bunch</span></code>
in <a class="reference internal" href="../modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline" title="sklearn.pipeline.Pipeline"><code class="xref py py-class docutils literal notranslate"><span class="pre">pipeline.Pipeline</span></code></a> to enable tab completion in interactive
environment. In the case conflict value on <code class="docutils literal notranslate"><span class="pre">named_steps</span></code> and <code class="docutils literal notranslate"><span class="pre">dict</span></code>
attribute, <code class="docutils literal notranslate"><span class="pre">dict</span></code> behavior will be prioritized.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8481">#8481</a> by <a class="reference external" href="https://github.com/herilalaina">Herilalaina Rakotoarison</a>.</p></li>
</ul>
<p>Miscellaneous</p>
<ul>
<li><p>Deprecate the <code class="docutils literal notranslate"><span class="pre">y</span></code> parameter in <code class="docutils literal notranslate"><span class="pre">transform</span></code> and <code class="docutils literal notranslate"><span class="pre">inverse_transform</span></code>.
The method  should not accept <code class="docutils literal notranslate"><span class="pre">y</span></code> parameter, as it’s used at the prediction time.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8174">#8174</a> by <a class="reference external" href="https://github.com/tzano">Tahar Zanouda</a>, <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>
and <a class="reference external" href="https://github.com/raghavrv">Raghav RV</a>.</p></li>
<li><p>SciPy &gt;= 0.13.3 and NumPy &gt;= 1.8.2 are now the minimum supported versions
for scikit-learn. The following backported functions in
<code class="xref py py-mod docutils literal notranslate"><span class="pre">utils</span></code> have been removed or deprecated accordingly.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8854">#8854</a> and <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/8874">#8874</a> by <a class="reference external" href="https://github.com/naoyak">Naoya Kanai</a></p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">store_covariances</span></code> and <code class="docutils literal notranslate"><span class="pre">covariances_</span></code> parameters of
<a class="reference internal" href="../modules/generated/sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis.html#sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis" title="sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis"><code class="xref py py-class docutils literal notranslate"><span class="pre">discriminant_analysis.QuadraticDiscriminantAnalysis</span></code></a>
has been renamed to <code class="docutils literal notranslate"><span class="pre">store_covariance</span></code> and <code class="docutils literal notranslate"><span class="pre">covariance_</span></code> to be
consistent with the corresponding parameter names of the
<a class="reference internal" href="../modules/generated/sklearn.discriminant_analysis.LinearDiscriminantAnalysis.html#sklearn.discriminant_analysis.LinearDiscriminantAnalysis" title="sklearn.discriminant_analysis.LinearDiscriminantAnalysis"><code class="xref py py-class docutils literal notranslate"><span class="pre">discriminant_analysis.LinearDiscriminantAnalysis</span></code></a>. They will be
removed in version 0.21. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7998">#7998</a> by <a class="reference external" href="https://github.com/mrbeann">Jiacheng</a></p>
<p>Removed in 0.19:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">utils.fixes.argpartition</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.fixes.array_equal</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.fixes.astype</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.fixes.bincount</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.fixes.expit</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.fixes.frombuffer_empty</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.fixes.in1d</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.fixes.norm</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.fixes.rankdata</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.fixes.safe_copy</span></code></p></li>
</ul>
<p>Deprecated in 0.19, to be removed in 0.21:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">utils.arpack.eigs</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.arpack.eigsh</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.arpack.svds</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.extmath.fast_dot</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.extmath.logsumexp</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.extmath.norm</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.extmath.pinvh</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.graph.graph_laplacian</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.random.choice</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.sparsetools.connected_components</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">utils.stats.rankdata</span></code></p></li>
</ul>
</li>
<li><p>Estimators with both methods <code class="docutils literal notranslate"><span class="pre">decision_function</span></code> and <code class="docutils literal notranslate"><span class="pre">predict_proba</span></code>
are now required to have a monotonic relation between them. The
method <code class="docutils literal notranslate"><span class="pre">check_decision_proba_consistency</span></code> has been added in
<strong>utils.estimator_checks</strong> to check their consistency.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7578">#7578</a> by <a class="reference external" href="https://github.com/shubham0704">Shubham Bhardwaj</a></p></li>
<li><p>All checks in <code class="docutils literal notranslate"><span class="pre">utils.estimator_checks</span></code>, in particular
<a class="reference internal" href="../modules/generated/sklearn.utils.estimator_checks.check_estimator.html#sklearn.utils.estimator_checks.check_estimator" title="sklearn.utils.estimator_checks.check_estimator"><code class="xref py py-func docutils literal notranslate"><span class="pre">utils.estimator_checks.check_estimator</span></code></a> now accept estimator
instances. Most other checks do not accept
estimator classes any more. <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/9019">#9019</a> by <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Ensure that estimators’ attributes ending with <code class="docutils literal notranslate"><span class="pre">_</span></code> are not set
in the constructor but only in the <code class="docutils literal notranslate"><span class="pre">fit</span></code> method. Most notably,
ensemble estimators (deriving from <code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.BaseEnsemble</span></code>)
now only have <code class="docutils literal notranslate"><span class="pre">self.estimators_</span></code> available after <code class="docutils literal notranslate"><span class="pre">fit</span></code>.
<a class="reference external" href="https://github.com/scikit-learn/scikit-learn/issues/7464">#7464</a> by <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a> and <a class="reference external" href="https://github.com/lesteve">Loic Esteve</a>.</p></li>
</ul>
</div>
<div class="section" id="id9">
<h2>Code and Documentation Contributors<a class="headerlink" href="#id9" title="Permalink to this headline">¶</a></h2>
<p>Thanks to everyone who has contributed to the maintenance and improvement of the
project since version 0.18, including:</p>
<p>Joel Nothman, Loic Esteve, Andreas Mueller, Guillaume Lemaitre, Olivier Grisel,
Hanmin Qin, Raghav RV, Alexandre Gramfort, themrmax, Aman Dalmia, Gael
Varoquaux, Naoya Kanai, Tom Dupré la Tour, Rishikesh, Nelson Liu, Taehoon Lee,
Nelle Varoquaux, Aashil, Mikhail Korobov, Sebastin Santy, Joan Massich, Roman
Yurchak, RAKOTOARISON Herilalaina, Thierry Guillemot, Alexandre Abadie, Carol
Willing, Balakumaran Manoharan, Josh Karnofsky, Vlad Niculae, Utkarsh Upadhyay,
Dmitry Petrov, Minghui Liu, Srivatsan, Vincent Pham, Albert Thomas, Jake
VanderPlas, Attractadore, JC Liu, alexandercbooth, chkoar, Óscar Nájera,
Aarshay Jain, Kyle Gilliam, Ramana Subramanyam, CJ Carey, Clement Joudet, David
Robles, He Chen, Joris Van den Bossche, Karan Desai, Katie Luangkote, Leland
McInnes, Maniteja Nandana, Michele Lacchia, Sergei Lebedev, Shubham Bhardwaj,
akshay0724, omtcyfz, rickiepark, waterponey, Vathsala Achar, jbDelafosse, Ralf
Gommers, Ekaterina Krivich, Vivek Kumar, Ishank Gulati, Dave Elliott, ldirer,
Reiichiro Nakano, Levi John Wolf, Mathieu Blondel, Sid Kapur, Dougal J.
Sutherland, midinas, mikebenfield, Sourav Singh, Aseem Bansal, Ibraim Ganiev,
Stephen Hoover, AishwaryaRK, Steven C. Howell, Gary Foreman, Neeraj Gangwar,
Tahar, Jon Crall, dokato, Kathy Chen, ferria, Thomas Moreau, Charlie Brummitt,
Nicolas Goix, Adam Kleczewski, Sam Shleifer, Nikita Singh, Basil Beirouti,
Giorgio Patrini, Manoj Kumar, Rafael Possas, James Bourbeau, James A. Bednar,
Janine Harper, Jaye, Jean Helie, Jeremy Steward, Artsiom, John Wei, Jonathan
LIgo, Jonathan Rahn, seanpwilliams, Arthur Mensch, Josh Levy, Julian Kuhlmann,
Julien Aubert, Jörn Hees, Kai, shivamgargsya, Kat Hempstalk, Kaushik
Lakshmikanth, Kennedy, Kenneth Lyons, Kenneth Myers, Kevin Yap, Kirill Bobyrev,
Konstantin Podshumok, Arthur Imbert, Lee Murray, toastedcornflakes, Lera, Li
Li, Arthur Douillard, Mainak Jas, tobycheese, Manraj Singh, Manvendra Singh,
Marc Meketon, MarcoFalke, Matthew Brett, Matthias Gilch, Mehul Ahuja, Melanie
Goetz, Meng, Peng, Michael Dezube, Michal Baumgartner, vibrantabhi19, Artem
Golubin, Milen Paskov, Antonin Carette, Morikko, MrMjauh, NALEPA Emmanuel,
Namiya, Antoine Wendlinger, Narine Kokhlikyan, NarineK, Nate Guerin, Angus
Williams, Ang Lu, Nicole Vavrova, Nitish Pandey, Okhlopkov Daniil Olegovich,
Andy Craze, Om Prakash, Parminder Singh, Patrick Carlson, Patrick Pei, Paul
Ganssle, Paulo Haddad, Paweł Lorek, Peng Yu, Pete Bachant, Peter Bull, Peter
Csizsek, Peter Wang, Pieter Arthur de Jong, Ping-Yao, Chang, Preston Parry,
Puneet Mathur, Quentin Hibon, Andrew Smith, Andrew Jackson, 1kastner, Rameshwar
Bhaskaran, Rebecca Bilbro, Remi Rampin, Andrea Esuli, Rob Hall, Robert
Bradshaw, Romain Brault, Aman Pratik, Ruifeng Zheng, Russell Smith, Sachin
Agarwal, Sailesh Choyal, Samson Tan, Samuël Weber, Sarah Brown, Sebastian
Pölsterl, Sebastian Raschka, Sebastian Saeger, Alyssa Batula, Abhyuday Pratap
Singh, Sergey Feldman, Sergul Aydore, Sharan Yalburgi, willduan, Siddharth
Gupta, Sri Krishna, Almer, Stijn Tonk, Allen Riddell, Theofilos Papapanagiotou,
Alison, Alexis Mignon, Tommy Boucher, Tommy Löfstedt, Toshihiro Kamishima,
Tyler Folkman, Tyler Lanigan, Alexander Junge, Varun Shenoy, Victor Poughon,
Vilhelm von Ehrenheim, Aleksandr Sandrovskii, Alan Yee, Vlasios Vasileiou,
Warut Vijitbenjaronk, Yang Zhang, Yaroslav Halchenko, Yichuan Liu, Yuichi
Fujikawa, affanv14, aivision2020, xor, andreh7, brady salz, campustrampus,
Agamemnon Krasoulis, ditenberg, elena-sharova, filipj8, fukatani, gedeck,
guiniol, guoci, hakaa1, hongkahjun, i-am-xhy, jakirkham, jaroslaw-weber,
jayzed82, jeroko, jmontoyam, jonathan.striebel, josephsalmon, jschendel,
leereeves, martin-hahn, mathurinm, mehak-sachdeva, mlewis1729, mlliou112,
mthorrell, ndingwall, nuffe, yangarbiter, plagree, pldtc325, Breno Freitas,
Brett Olsen, Brian A. Alfano, Brian Burns, polmauri, Brandon Carter, Charlton
Austin, Chayant T15h, Chinmaya Pancholi, Christian Danielsen, Chung Yen,
Chyi-Kwei Yau, pravarmahajan, DOHMATOB Elvis, Daniel LeJeune, Daniel Hnyk,
Darius Morawiec, David DeTomaso, David Gasquez, David Haberthür, David
Heryanto, David Kirkby, David Nicholson, rashchedrin, Deborah Gertrude Digges,
Denis Engemann, Devansh D, Dickson, Bob Baxley, Don86, E. Lynch-Klarup, Ed
Rogers, Elizabeth Ferriss, Ellen-Co2, Fabian Egli, Fang-Chieh Chou, Bing Tian
Dai, Greg Stupp, Grzegorz Szpak, Bertrand Thirion, Hadrien Bertrand, Harizo
Rajaona, zxcvbnius, Henry Lin, Holger Peters, Icyblade Dai, Igor
Andriushchenko, Ilya, Isaac Laughlin, Iván Vallés, Aurélien Bellet, JPFrancoia,
Jacob Schreiber, Asish Mahapatra</p>
</div>
</div>


      </div>
    <div class="container">
      <footer class="sk-content-footer">
            &copy; 2007 - 2019, scikit-learn developers (BSD License).
          <a href="../_sources/whats_new/v0.19.rst.txt" rel="nofollow">Show this page source</a>
      </footer>
    </div>
  </div>
</div>
<script src="../_static/js/vendor/bootstrap.min.js"></script>

<script>
    window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
    ga('create', 'UA-22606712-2', 'auto');
    ga('set', 'anonymizeIp', true);
    ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>


<script>
$(document).ready(function() {
    /* Add a [>>>] button on the top-right corner of code samples to hide
     * the >>> and ... prompts and the output and thus make the code
     * copyable. */
    var div = $('.highlight-python .highlight,' +
                '.highlight-python3 .highlight,' +
                '.highlight-pycon .highlight,' +
		'.highlight-default .highlight')
    var pre = div.find('pre');

    // get the styles from the current theme
    pre.parent().parent().css('position', 'relative');
    var hide_text = 'Hide prompts and outputs';
    var show_text = 'Show prompts and outputs';

    // create and add the button to all the code blocks that contain >>>
    div.each(function(index) {
        var jthis = $(this);
        if (jthis.find('.gp').length > 0) {
            var button = $('<span class="copybutton">&gt;&gt;&gt;</span>');
            button.attr('title', hide_text);
            button.data('hidden', 'false');
            jthis.prepend(button);
        }
        // tracebacks (.gt) contain bare text elements that need to be
        // wrapped in a span to work with .nextUntil() (see later)
        jthis.find('pre:has(.gt)').contents().filter(function() {
            return ((this.nodeType == 3) && (this.data.trim().length > 0));
        }).wrap('<span>');
    });

    // define the behavior of the button when it's clicked
    $('.copybutton').click(function(e){
        e.preventDefault();
        var button = $(this);
        if (button.data('hidden') === 'false') {
            // hide the code output
            button.parent().find('.go, .gp, .gt').hide();
            button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'hidden');
            button.css('text-decoration', 'line-through');
            button.attr('title', show_text);
            button.data('hidden', 'true');
        } else {
            // show the code output
            button.parent().find('.go, .gp, .gt').show();
            button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'visible');
            button.css('text-decoration', 'none');
            button.attr('title', hide_text);
            button.data('hidden', 'false');
        }
    });

	/*** Add permalink buttons next to glossary terms ***/
	$('dl.glossary > dt[id]').append(function() {
		return ('<a class="headerlink" href="#' +
			    this.getAttribute('id') +
			    '" title="Permalink to this term">¶</a>');
	});
  /*** Hide navbar when scrolling down ***/
  // Returns true when headerlink target matches hash in url
  (function() {
    hashTargetOnTop = function() {
        var hash = window.location.hash;
        if ( hash.length < 2 ) { return false; }

        var target = document.getElementById( hash.slice(1) );
        if ( target === null ) { return false; }

        var top = target.getBoundingClientRect().top;
        return (top < 2) && (top > -2);
    };

    // Hide navbar on load if hash target is on top
    var navBar = document.getElementById("navbar");
    var navBarToggler = document.getElementById("sk-navbar-toggler");
    var navBarHeightHidden = "-" + navBar.getBoundingClientRect().height + "px";
    var $window = $(window);

    hideNavBar = function() {
        navBar.style.top = navBarHeightHidden;
    };

    showNavBar = function() {
        navBar.style.top = "0";
    }

    if (hashTargetOnTop()) {
        hideNavBar()
    }

    var prevScrollpos = window.pageYOffset;
    hideOnScroll = function(lastScrollTop) {
        if (($window.width() < 768) && (navBarToggler.getAttribute("aria-expanded") === 'true')) {
            return;
        }
        if (lastScrollTop > 2 && (prevScrollpos <= lastScrollTop) || hashTargetOnTop()){
            hideNavBar()
        } else {
            showNavBar()
        }
        prevScrollpos = lastScrollTop;
    };

    /*** high preformance scroll event listener***/
    var raf = window.requestAnimationFrame ||
        window.webkitRequestAnimationFrame ||
        window.mozRequestAnimationFrame ||
        window.msRequestAnimationFrame ||
        window.oRequestAnimationFrame;
    var lastScrollTop = $window.scrollTop();

    if (raf) {
        loop();
    }

    function loop() {
        var scrollTop = $window.scrollTop();
        if (lastScrollTop === scrollTop) {
            raf(loop);
            return;
        } else {
            lastScrollTop = scrollTop;
            hideOnScroll(lastScrollTop);
            raf(loop);
        }
    }
  })();
});

</script>
    
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
    
</body>
</html>